2011-04-20 62 views
0

對於我已驗證onChange()事件的字段。當我更改字段並單擊提交按鈕時。 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

提供了一些代碼。 – usoban 2011-04-20 15:14:46

+0

提供了代碼 – tapps 2011-04-20 15:21:00

+0

您是否使用jQuery?另外,點擊'onchange'以將textarea中的值恢復爲其先前的值不起作用。你必須進入'keydown'事件。 – 2011-04-20 15:44:18

回答

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(); 
    } 
    } 
}); 
+0

有人可以幫我如何使用jquery.data()來綁定'真正'的價值,並檢查提交 – tapps 2011-04-20 15:59:33

+0

所以上述代碼只適用於當我們改變的價值,而不是在提交表單的權利? – tapps 2011-04-20 16:31:11

+1

這是正確的。如果我是你,我會放棄這一努力,並使用像下面這樣的驗證插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – jessegavin 2011-04-20 16:32:58