onChange验证提交

时间:2011-04-20 15:13:58

标签: javascript html

对于某个字段,我对onChange()事件进行了验证。当我更改字段并单击“提交”按钮时。 onChange()事件是否检查验证。

就我而言,它不是在检查。

请提供任何帮助或建议

<textarea id='abc' name='abc' onChange="checkvalidation('abc','true')>ddd</textarea>

function checkvalidation(field, numericOrNot){
var Value = '#' + field;
    var fieldval = $(field).val();
    if(numericOrNot) {
        if(isNaN(fieldval)) {
            alert("not a number");
            return false;
        }
    }
    return true;
}

1 个答案:

答案 0 :(得分:1)

当您更改表单字段的值并从该字段中删除焦点时,应触发onChange事件。它应该在您单击提交按钮之前触发。

但是,您在html中的)之后错过了结束语。

<textarea id='abc' name='abc' onChange="checkvalidation('abc','true')">ddd</textarea>
//-------------------------------------------------------------------^

以下是更改代码的方法,以便它使用data-属性来确定数据类型。

Html

<textarea id='abc' name='abc' data-type="number">ddd</textarea>

jQuery代码

$("#abc").change(function() {
  var $this = $(this);
  if($this.data("type") == "number") {
    if(isNaN($this.val())) {
      alert("not a number");
    }
  }
});

提交表单时如何运行此代码的示例

$("form").submit(function(e) {
  var $this = $("#abc");
  if($this.data("type") == "number") {
    if(isNaN($this.val())) {
      alert("not a number");
      e.preventDefault();
    }
  }
});