繁体   English   中英

将值从函数传递到javascript中的表单属性

[英]passing value from a function to a form attribute in javascript

如果值不是数字,则得到了函数正在检查的表单字段。 返回检查后,我需要另一个用于将属性值传递给字段的函数。

例:

  • 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>

希望对此有所帮助。

我会尝试这样做...

只需在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;

     }

}

演示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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM