这里有以下形式:
<form id="form" role="form" method='POST' action="user_add-post.php">
<div class="form-group">
<p><label class="control-label">Title</label><br />
<input style="width: 40%" class="form-control" type="text" name="postTitle"/>
</div>
<div class="form-group">
<p><label lass="control-label">Description</label><br />
<textarea name="postDesc" cols="60" rows="10"></textarea>
</div>
<div class="form-group">
<p><label>Content</label></p>
<textarea name="postCont" cols="60" rows="10"></textarea>
</div>
<input type='submit' name="submit" class='btn btn-primary' value='Submit'></form>
以及我的jquery来检查输入字段是否为空:
$('#form').submit(function() {
if ($.trim($("#postTitle").val()) === "" || $.trim($("#postDesc").val()) === "" || $.trim($("#postCont").val()) === "") {
alert('All fields required');
return false;
} });
现在为什么不提交?它继续说即使我已经填满了字段,所有字段都是必需的。
答案 0 :(得分:2)
您错过了在输入框中添加ID
<input style="width: 40%" class="form-control" type="text" name="postTitle"/>
将其更改为
<input style="width: 40%" class="form-control" type="text" id="postTitle" name="postTitle"/>
还有下一个文本框,请Refer
答案 1 :(得分:1)
您尚未向任何表单字段指定ID,请使用带条件的全局选择器 这是working fiddle of your task
`$("input[name=postTitle]").val()` //name selector instead of id
答案 2 :(得分:1)
您没有定义ID,因此请将条件更改为
if ($.trim($('[name="postTitle"]').val()) === "" || $.trim($('[name="postDesc"]').val()) === "" || $.trim($('[name="postCont"]').val()) === "")
答案 3 :(得分:0)
如果情况应该是这样的:
if ($("#postTitle").val().trim() == "" || $("#postDesc").val().trim() == "" || $("#postCont").val().trim() == "") {
答案 4 :(得分:0)
如果您有任何JS错误,请参阅。此外,在各种浏览器上尝试。您没有使用ID属性,但名称是attritute,因此它可能无法在Firefox,Chrome上运行,并且可能适用于IE7及更低版本。希望这可以帮助你
答案 5 :(得分:0)
在html代码中为输入元素提供Id。
Jquery代码很好
这是正确的html代码
<input style="width: 40%" class="form-control" type="text" name="postTitle" id="postTitle"/>
答案 6 :(得分:0)
是的,就像其他人一样,如果您要使用选择器,那么您需要在表单字段中使用这些ID。或者你可以使用这样的名字:
$("[name=postTitle]").val()
$("[name=postDesc]").val()
$("[name=postCont]").val()
以下是你的jquery:
$('#form').submit(function() {
if ($("[name=postTitle]").val().trim() == "" || $("[name=postDesc]").val().trim() == "" || $("[name=postCont]").val().trim() == "") {
alert('All fields required');
return false;
} });
答案 7 :(得分:0)
正如其他人所说,选择器基于ID但使用 name 属性值。因此,您可以添加ID属性,更改选择器或使用其他策略。
由于侦听器位于表单上,因此函数中的 this 引用表单,并且所有具有名称的表单控件都可用作表单的命名属性。因此,您可以使用正则表达式轻松测试值包含除空白之外的其他内容,因此请考虑:
var form = this;
var re = /^\s*$/;
if (re.test(form.postTitle.value) || re.test(form.postDesc.value) || re.test(form.postCont.value) {
/* form is not valid */
}
比OP更有效率。
鉴于上述情况,名称为 submit 的表单控件将屏蔽表单的提交方法,因此您无法调用form.submit()
或{{1} }。