[英]jQuery preventdefault() function not working
這是我的Jsfiddle 。
實際上,我正在嘗試在提交之前驗證文本字段。 如果文本字段為空,我想顯示errormsg_box
,如果不是,則提交表單,但在這里它不起作用這是我的腳本:
$("form").submit(function(event) {
var text_val = $('#emailid').val();
alert(text_val);
if (text_val != ' ') {
$('.errormsg_box').show();
return false;
event.preventdefault();
}
else if (text_val != '') {
$('.errormsg_box').hide();
return true;
}
});
if ($.trim(text_val) === "") {
return false;
// Or
event.preventDefault(); // event.preventdefault()
// javascript is case sensitive.
}
完整代碼:
$("form").submit(function(event) {
var text_val = $('#emailid').val();
if ($.trim(text_val) === "") {
$('.errormsg_box').show();
return false;
}
else
$('.errormsg_box').hide();
});
如果你想驗證文本是一個有效的電子郵件地址:
var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!regex.test($.trim(text_val)))
... Error
$("form").submit(function(event) {
var text_val = $.trim($('#emailid').val()); // $.trim() for remove space
if (!text_val) { // check for empty
$('.errormsg_box').show();
return false;
//or
//event.preventDefault();
}
});
編輯這可能是一個更好的解決方案:
<input id="emailid" class="required email" />
並使用 jQuery 驗證插件: http ://bassistance.de/jquery-plugins/jquery-plugin-validation/
$("#form").validate();
所以是這樣的:
$(document).ready(function () {
$("#form").submit(function () {
var container = $('errormsg_box');
var validator = $("#form").validate({
errorContainer: container,
errorLabelContainer: $("ul", container),
ignore: ":not(:visible)",
wrapper: 'li',
rules: {
emailid: { required: true, email: true }
},
messages: {
emailid: "The e-mailaddress is invalid!"
}
});
if ($("#form").valid()) {
alert('ok nice!');
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.