0

値が数値かどうか関数によってチェックされているフォーム フィールドを取得しました。チェックを返した後、属性値をフィールドに渡すための別の関数が必要です。

例:

  • FunctionA は、値が数値かどうかをチェックします
  • FunctionB は、フォームフィールドの属性として設定されている FunctionA から特定の数字を取得します
  • フォーム フィールドの値が数値の場合、最大長を 20 に設定します
  • 数値でない場合は、maxlength を 10 に設定します。

HTML:

<form method="post"  action="">

<input type="text" name="txt" onblur="numChk(this.value);" maxlength="getMax();" />

<p id="fmsg"></p>

<input type="submit" name="sub" />

</form>

Javascript:

<script type="text/javascript">
function numChk (num){
 //var num = num;
    if(!isNaN(num)){
          document.getElementById("fmsg").innerHTML = '<strong>' + num + ' is a number </strong>';
          getMax(maxVal) = 14;
    } else{
          document.getElementById("fmsg").innerHTML = '<em>' + num + ' is not a number </em>';
          getMax(maxVal) = 11;
    }

}

function getMax(maxVal){
    return maxVal;
}
</script>

これで助けが得られることを願っています。

4

2 に答える 2

0

デモ: http://jsfiddle.net/Q7A32/

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

var inp = document.getElementById('myinput'),
    output = document.getElementById("fmsg");

inp.onkeyup = function() {
    var val = this.value;
    if(isNumber(val)){
        output.innerHTML = '<strong>' + val + ' is a number </strong>';
        this.maxLength = 14;
    }else{
        output.innerHTML = '<em>' + val + ' is not a number </em>';
        this.maxLength = 11;
    }
};

注:文字列が数値かどうかを確認するには、https://stackoverflow.com/a/1830844/1529630を使用します

于 2013-09-06T16:08:46.360 に答える
0

私はこれをやってみます...

パラメーターなしで HTML で関数を呼び出し、ID を追加するだけです。

<input type="text" name="txt" id="txt" onblur="numChk();" maxlength="getMax();" />

次に、関数で、入力フィールドの値を取得します。

function numChk (){
     //var num = num;
     var num = parseInt(document.getElementById("txt").value); //Get input field value

     if(!isNaN(num)){
         document.getElementById("fmsg").innerHTML = '<strong>' + num + ' is a number </strong>';
         getMax(maxVal) = 14;
     }else{
         document.getElementById("fmsg").innerHTML = '<em>' + num + ' is not a number </em>';
         getMax(maxVal) = 11;

     }

}
于 2013-09-06T16:03:40.623 に答える