No.4ベストアンサー
- 回答日時:
なるほどようやく意味がわかってきました
そういうことであればAもBもセレクトボックスなのですね。
もとスクリプトでは日付関数をつかっているので
日付31(or月末日)をこえると1日にもどっています。
飴の個数に日付けをつかうことはないので、単純に
日付処理の部分をはずしてしまって大丈夫です
こんなかんじでしてみてください
<HEAD>
<style type="text/css">
input.num{
text-align:right;
}
</style>
<SCRIPT TYPE="text/javascript">
function check(obj){
var f=obj.form;
var valA=parseInt(f.A.value);
var valB=parseInt(f.B.value);
var valC=parseInt(f.C.value);
if (valA+valB > valC){
alert('AとBの和はC以下にしてください')
if(obj.type=="select-one") obj.selectedIndex=0;
else if(obj.type=="text") obj.value=0;
obj.focus();
}
}
function checkForm(f){
var flag = true;
if(f.post1.value.match(/[^0-9]+/)) flag = false;
if(!flag) window.alert('数字以外が入力されています');
return flag;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="*****.cgi" NAME="form1" onSubmit="return checkForm(this)">
〒:<INPUT TYPE="text" NAME="post1" SIZE="4" maxlength="3">(半角数字で)
<BR>
A:<select name="A" onChange="check(this)">
<option value = '選択してください' selected>選択してください</option>
<script language="javascript">
for ( var i = 0; i < 100; i++ ){
var sDat = ( "00" + i ).match( /..$/ );
document.write( "<option value = '" + sDat + ")'>" + sDat + "</option>\n" );
}
</script>
</select><br>
B:<select name="B" onChange="check(this)">
<option value = '選択してください' selected>選択してください</option>
<script language="javascript">
for ( var i = 0; i < 100; i++ ){
var sDat = ( "00" + i ).match( /..$/ );
document.write( "<option value = '" + sDat + ")'>" + sDat + "</option>\n" );
}
</script>
</select><br>
C:<input type="text" name="C" readonly value="100" class="num"></br>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
ありがとうございます!!
イメージしていたものが完璧にできそうです!
凄いお力をお持ちで、敬服致します。
実は昨日一日頑張ってみましたが、やはり自分の実力では難しいと痛感しておりました。。。
本当に助かりました、有難うございます!
No.3
- 回答日時:
微妙にわかりにくいのですが・・・
とりあえずAをテキストボックスからセレクトボックスに変えたバージョンです。
基本的には前回と同じで、セレクトボックスを使った場合のデータクリアの
仕方が若干ことなります。
<HEAD>
<style type="text/css">
input.num{
text-align:right;
}
</style>
<SCRIPT TYPE="text/javascript">
function check(obj){
var f=obj.form;
var valA=parseInt(f.A.value);
var valB=parseInt(f.B.value);
var valC=parseInt(f.C.value);
if (valA+valB >= valC){
alert('AとBの和はC以下にしてください')
if(obj.type=="select-one") obj.selectedIndex=0;
else if(obj.type=="text") obj.value=0;
obj.focus();
}
}
function checkForm(f){
var flag = true;
if(f.post1.value.match(/[^0-9]+/)) flag = false;
if(!flag) window.alert('数字以外が入力されています');
return flag;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="*****.cgi" NAME="form1" onSubmit="return checkForm(this)">
〒:<INPUT TYPE="text" NAME="post1" SIZE="4" maxlength="3">(半角数字で)
<BR>
A:<select name="A" onChange="check(this)">
<option value = '選択してください' selected>選択してください</option>
<script language="javascript">
for ( var i = 0; i < 101; i++ ){
var d = new Date(0);
d.setDate( d.getDate() + i );
var sDat = ( "00" + d.getDate() ).match( /..$/ );
document.write( "<option value = '" + sDat + ")'>" + sDat + "</option>\
n" );
}
</script>
</select><br>
B:<input type="text" name="B" value="0" onChange="check(this)" class="num"></br>
C:<input type="text" name="C" readonly value="100" class="num"></br>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
この回答への補足
ありがとうございます!
丁度スクリプトに向かいながら、専門書を眺めていた所でした。。。
すごいです!徐々にイメージに近づいていますが、
A:<select name="A" onChange="check(this)">
<option value = '選択してください' selected>選択してください</option>
<script language="javascript">
for ( var i = 0; i < 101; i++ ){
var d = new Date(0);
d.setDate( d.getDate() + i );
var sDat = ( "00" + d.getDate() ).match( /..$/ );
document.write( "<option value = '" + sDat + ")'>" + sDat + "</option>\
n" );
}
の部分、オブジェクト!? var d = new Date(); になっているからかもしれませんが、1~31の数字でまた1に戻ってしまいます。
この場合はArrayを使えばいいのでしょうか。。。
この値を変更すると、私の力では動かなくなってしまいます。。。
やりたい事はA、Bの飴2種類を混ぜて最大100個注文する感じです。
それをプルダウンで数を選択したいのですが、AとBの和をC以上にならないように計算したいと思っています。
いろいろ申し訳ありません。自分でも頑張ってみます
No.2
- 回答日時:
>テキストボックスA,Bはセレクトボックスで書き出したく
については何がやりたいのかわかりませんが、入力制限というと
以下のようになるかと思います。
<style type="text/css">
input{
text-align:right;
}
</style>
<script language=javascript>
function check(obj){
var f=obj.form;
var valA=parseInt(f.A.value);
var valB=parseInt(f.B.value);
var valC=parseInt(f.C.value);
if (valA+valB >= valC){
alert('AとBの和はC以下にしてください')
obj.value=0;
obj.focus();
}
}
</script>
<form>
A:<input type="text" name="A" value="0" onChange="check(this)"></br>
B:<input type="text" name="B" value="0" onChange="check(this)"></br>
C:<input type="text" name="C" readonly value="100"></br>
</form>
ありがとうございます!
足りない説明の中、ご理解頂きまして感謝しています!!
今度は自分で探してきたスクリプトと合成したく、悩んでおります
若しお時間あればお教え頂ければ幸いです。
<HEAD>
<SCRIPT TYPE="text/javascript">
<!--
function check(){
var flag = 0;
if(document.form1.post1.value.match(/[^0-9]+/)){
flag = 1;
}
if(flag){
window.alert('数字以外が入力されています');
return false;
}
else{
return true;
}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="*****.cgi" NAME="form1" onSubmit="return check()">
〒:<INPUT TYPE="text" NAME="post1" SIZE="4" maxlength="3">(半角数字で)
<BR>
<select name="A" size="1" value="$A$">
<option value = '選択してください' selected>選択してください</option>
<script language="javascript">
for ( var i = 0; i < 101; i++ ){
var d = new Date(0);
d.setDate( d.getDate() + i );
var sDat = ( "00" + d.getDate() ).match( /..$/ );
document.write( "<option value = '" + sDat + ")'>" + sDat + "</option>\n" );
}
</script>
</select>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
上記で解りますでしょうか。
ご回答頂いたA:<input type="text" の部分を<select>で表示したく、かつA&Bの和はC以下になる。。。と言うのは、不可能でしょうか。
No.1
- 回答日時:
よくわかりませんねえ。
>2つ以上のテキストボックス(A,B)
2つ以上とはなんですか?
>その和を(C)以上にならないように
Cはどうやって決めるの?
>JavaScriptで可能でしょうか。
可能です。
>テキストボックスA,Bはセレクトボックスで書き出したく
テキストボックスを書き出すわけ?
それとも、
テキストボックスに数値をコピーするわけ?
というか、
セレクトボックスに数字は出るわけだけど、二重に表示した
いってこと?
>ご質問させてください。
自分に敬語使ってどうしますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
value内に変数を入れたい
-
setIntervalの間隔を途中で変更...
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
他フォームの入力データの引継ぎ
-
フォーム送信の際、空白行を上...
-
どのボタンがクリックされたの...
-
VB.NET DateTimeの型について
-
フォームで入力した値を別のフ...
-
ブラウザ上のテキストボックス...
-
プログラムで、計算結果をセル...
-
カレントのオブジェクトの値を...
-
関数名などの固有名詞(?)を...
-
テキストボックスに入力された...
-
クイズ作成:15個の問題から5個...
-
jquery.cookie.jsを使用してい...
-
RUBY の 分数の 精度
-
Javaでtanh^-1を求める方法がわ...
-
チェックボックス付きのテーブ...
-
二つの入力欄に、同時に同じ文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
javascriptでhiddenに二次元配...
-
hiddenのvalueの値を変えたい
-
setIntervalの間隔を途中で変更...
-
複数のsubmitボタンで押された...
-
javascriptにてHTMLのhiddenエ...
-
VB.NET DateTimeの型について
-
フォームで入力した値を別のフ...
-
セレクトボックスの初期選択状...
-
ラジオボタンの選択で解答・点...
-
テキストボックスに入力された...
-
クイズ作成:15個の問題から5個...
-
ホームページビルダーのスクリ...
-
入力を制限したい
-
CDOMailで本文テキストの文字コ...
-
VBAをJavaScriptに変換したいです
-
UART通信の取説で,left floati...
-
ラジオボタン、チェックボック...
-
Pythonで会員サイトの自動ログ...
-
JavaScriptでセレクトボックス...
おすすめ情報