0

前のWebページからクエリ文字列によって渡された値の後に、テキストボックスにデフォルト値を割り当てました。

次のようになります。

<form method="post" name="create" onsubmit="return checkPercentValue()" style="font-size: medium; margin-top: 10%" dir="rtl" >
<input type="text" size="5px"  id="stocksPercents" name="stocksPercents" value="@stocks">
</form> 

ユーザーがデフォルトの値を変更するためにテキストボックスに別の値を入力すると、javascript関数を呼び出して、値をある範囲(0〜100)で検証します。

関数:

<script type="text/javascript">
function checkPercentValue() {

    var value = parseInt(document.getElementById("stocksPercents").getAttribute("value"));
    if (value > 100 || value < 0) {
        window.alert("please insert value between 0 - 100");
        return false;
    }
    else {
        return true;
    }

}
</script>    

たとえば、200 (100 より大きい) の値を入力すると、アラートがポップアップしない理由を確認しました (!!!) コードに次の行を追加しました。

document.write(value); 

そして、値が常にデフォルトのままであることがわかりました....以前にテキストボックスで変更しても変更されません。

問題は、テキストボックスに値を入力しても、そのようにデフォルト値を変更できないことだと思います...

それに対する解決策は何ですか?

ありがとう...

4

2 に答える 2

0

jQueryの使用を検討することもできます。構文はより簡単で、入力がはるかに短く、クロスブラウザー互換です(つまり、このb / c jQueryがそれを保証することを心配する必要はありません)。

jQueryのコードは次のとおりです。

<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
        <script type="text/javascript">
        function checkPercentValue() {
            var value = parseInt($("#stocksPercents").val());
            if (value > 100 || value < 0) {
alert('I am GREATER');
                window.alert("please insert value between 0 - 100");
                return false;
            }
            else {
alert('I am LESS');
                return true;
            }

        }
        $(document).ready(function() {
            $('#stocksPercents').blur(function() {
                checkPercentValue();
//              alert('Yo!');
            });
        });
        </script>    
</head>
<body>

<form method="post" name="create" onsubmit="return checkPercentValue()" dir="rtl" >
    <input type="text" size="5px"  id="stocksPercents" name="stocksPercents" value="@stocks">
</form> 


</body></html>
于 2012-11-27T18:07:21.043 に答える
0

これを交換

var value = parseInt(document.getElementById("stocksPercents").getAttribute("value"));

var value = parseInt(document.getElementById("stocksPercents").value);

これで問題が解決します。

于 2012-11-27T17:55:51.097 に答える