Mik*_*key 1 html javascript php jquery
我正在运行客户端验证javascript,它将在验证数据后通过ajax帖子提交表单.这是javascript:
$(".button").click(function() {
$(".error").hide();
var name = $(":input.name").val();
if ((name == "") || (name.length < 4)){
$("label#nameErr").show();
$(":input.name").focus();
return false;
}
var email = $(":input.email").val();
if (email == "") {
$("label#emailErr").show();
$(":input.email").focus();
return false;
}
var phone = $(":input.phone").val();
if (phone == "") {
$("label#phoneErr").show();
$(":input.phone").focus();
return false;
}
var comment = $("#comments").val();
if ((!comment) || (comment > 100)) {
$("label#commentErr").show();
$("#comments").focus();
alert("hello");
return false;
}
var info = 'name:' + name + '&email:' + email + '&phone:' + phone + '&comment:' + comment;
var ajaxurl = '<?php echo admin_url("admin-ajax.php"); ?>';
alert(info);
jQuery.ajax({
type:"post",
dataType:"json",
url: myAjax.ajaxurl,
data: {action: 'submit_data', info: info},
success: function(response) {
if (response.type == "success") {
alert("success");
}
else {
alert("fail");
}
}
});
$(":input").val('');
return false;
});
Run Code Online (Sandbox Code Playgroud)
四个输入字段是名称,电子邮件和电话的三个文本输入,然后是注释/查询部分的一个文本区域.问题是,如果我将textarea留空或输入超过100个字符,则脚本不会进入if((!comment)||(comment> 100))语句.我想知道是否有一个不同的值被分配给textarea当它是空白时阻止代码看到它是空的?
Som*_*ens 21
你需要检查length属性comment(也有一些额外的parens.它们不会破坏任何东西,但不需要).
if (!comment || comment.length > 100) {
Run Code Online (Sandbox Code Playgroud)
目前发生的是你正在尝试确定一个给定的字符串是否小于一个数字,这是非常愚蠢的,所以JS宣称它是假的.检查comment.length将其与数字进行比较,这是您希望它执行的操作.
!comment因为空字符串是假的,但你认为是空的可能不是(例如,带空格的字符串是非空的:) ' '.使用.trim()以消除讨厌的空白:
if (!comment.trim() && comment.length > 100)
Run Code Online (Sandbox Code Playgroud)
(作为旁注,以上都不需要jQuery,它都是JavaScript)
| 归档时间: |
|
| 查看次数: |
51721 次 |
| 最近记录: |