2

それぞれに送信ボタンがある 2 つの HTML フォームを含む Web ページがあります。ユーザーが最初のフォームの送信ボタンをクリックしてから、2 番目のフォームに移動するようにしたいと考えています。

私は頭の中にこのJavaScriptを持っています:

<script type="text/javascript">
<!--Script to block date changes when price changes pending
var priceflag = 0;  
function pricechange() {
var priceflag = 1;  
}
function pricesubmit() {
var priceflag = 0;  
}
function datechange() {
    if (priceflag == 1){
alert ("Please click \"Submit\" before you move on to the dates.");
    }
}
-->
</script>

次に、非常に省略された形式のフォームは次のとおりです。

<form action="<?php $_SERVER['PHP_SELF']?>" method="post" name="seasonprice">
<input name="price" value="<?php echo $price ?>" type="text" size="7" maxlength="7" onChange="pricechange()">
<input name="price2" value="" type="text" size="7" maxlength="7">
<input name="submit" type="submit" value="Submit" onClick="pricesubmit()">
</form>
<br>
<br>
<form id="addseason" action="<?php $_SERVER['PHP_SELF']?>" method="post" name="addseason">
<input name="FromDate" type="date" value="2013-01-01" size="16" onMouseDown="datechange();">
</form>

ユーザーが「価格」を変更し、「送信」をクリックせずに「FromDate」にカーソルを置くと、アラートが表示されます。しかし、うまくいきません!私は髪を引き裂いていますが、それは非常に基本的なエラーだと確信しています.

4

1 に答える 1

2

を使用するvarと、ローカル変数を宣言することになります。priceflagしたがって、コードには、グローバル、priceflagインpricechangepriceflagインの3つの異なる変数がありますpricesubmit

また、コメントで提案されているように、ブール値が必要な場合はブール値(true / false)を使用します。

このようなものが機能します(var関数内にsがないことに注意してください):

var priceflag = false;  
function pricechange() {
    priceflag = true;  
}
function pricesubmit() {
    priceflag = false;  
}
function datechange() {
     if (priceflag){
         ...
     }
}

便利な読み物:

于 2013-01-21T16:23:38.433 に答える