2014-09-26 101 views
-1

它不会提交即使字段不为空FORM不会提交即使输入字段不为空

这里的形式:

<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

检查JS控制台中的JS错误。 – 2014-09-26 07:19:34

+0

请为所有输入提供ID – Khushboo 2014-09-26 07:20:45

+0

您正在使用带有ID的jQuery选择器,但您的元素没有ID:P请参阅http://jsfiddle.net/gftntvrL/ – Alexandros 2014-09-26 07:22:51

回答

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

0

如果条件应该是这样的:

if ($("#postTitle").val().trim() == "" || $("#postDesc").val().trim() == "" || $("#postCont").val().trim() == "") { 
0

如果你有任何JS错误,请参阅。另外,在各种浏览器上试用它。您不使用ID属性,而是使用名称属性,因此它可能无法在Firefox和Chrome上运行,并且可能在IE7及更低版本上运行。希望这可以帮助你

0

在html代码中为输入元素提供Id。

jQuery代码是罚款

这里是HTML

<input style="width: 40%" class="form-control" type="text" name="postTitle" id="postTitle"/> 
1

你还没有给IDS任何表单域的正确的代码,用全局选择与条件 这里是working fiddle of your task

`$("input[name=postTitle]").val()` //name selector instead of id 
1

您没有定义ID,请将条件更改为

if ($.trim($('[name="postTitle"]').val()) === "" || $.trim($('[name="postDesc"]').val()) === "" || $.trim($('[name="postCont"]').val()) === "") 
0

是的,像其他人都说如果你要使用选择器,那么你需要这些身份证上的表单字段。或者你可以使用的名称是这样的:

$("[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; 
} }); 
0

正如其他人所说,该选择是基于ID,但使用属性值。所以你可以添加ID属性,更改选择器或使用不同的策略。

由于收听者是在窗体上,所以这个内的函数引用窗体和所有具​​有名称的窗体控件都可用作窗体的命名属性。所以,你可以轻松地测试值包含使用正则表达式,除空白的东西,所以考虑:

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更有效。

鉴于与名以上,表单控件提交会掩盖表单提交方法,这样你就不能调用form.submit()$('#formID').submit()

相关问题