<form onsubmit="return false;" id="myform">
<input type="text" id="data"/>
<input type="submit" value="Submit" id="submitForm" />
</form>
<script>
$(document).ready(function() {
var form = $('#myform');
var result = form.find('#data').val() != "";
if ($.data(form, 'validated') && result) {
return true;
}
else
$.data(form, 'validated', false);
$.post('http://myweb/action', form.serialize(), function (data) {
var json_result = $.parseJSON(data);
if (result && json_result.is_valid) {
$.data(form, 'validated', true);
form.attr('onsubmit', 'return true;');
form.submit();
}
else {
alert('There is an error in the form data!');
}
}
});
</script>
代碼是一個好的做法?
根本不好使用'onsubmit'作爲元素屬性。代碼有點難以理解 - 這不是一個完整的例子,對吧? – JJJ
我建議你使用jQuery驗證插件進行驗證。 –
您的代碼邏輯上沒有意義。 if語句在文檔準備就緒時運行,永不再運行。如果它沒有在文檔準備好時進行驗證,它將永遠不會驗證。 –