Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使输入字段不为空,表单也不会提交_Javascript_Php_Jquery_Forms - Fatal编程技术网

Javascript 即使输入字段不为空,表单也不会提交

Javascript 即使输入字段不为空,表单也不会提交,javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,即使字段不是空的,它也不会提交 以下是表格: 现在为什么不提交呢?它一直说所有字段都是必需的,即使我已经填写了字段。您没有在输入框中添加id <input style="width: 40%" class="form-control" type="text" name="postTitle"/> 换成 <input style="width: 40%" class="form-control" type="text" id="postTitle" name="postTit

即使字段不是空的,它也不会提交

以下是表格:


现在为什么不提交呢?它一直说所有字段都是必需的,即使我已经填写了字段。

您没有在输入框中添加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"/>

对于下一个文本框,如果条件如下,请参见:

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

如果您遇到任何JS错误,请参阅。另外,可以在各种浏览器上试用。您使用的不是ID属性,而是名称属性,因此它可能无法在Firefox、Chrome上使用,也可能无法在IE7及以下版本上使用。希望这能帮助您在html代码中为输入元素提供Id

Jquery代码很好

下面是正确的html代码

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

如果尚未为任何表单字段提供ID,请使用带条件的全局选择器 这是你的电话号码


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

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

是的,就像其他人说的那样,如果你要使用选择器,那么你需要表单字段上的id。或者您可以使用如下名称:

if ($("#postTitle").val().trim() == "" || $("#postDesc").val().trim() == "" || $("#postCont").val().trim() == "") {
$("[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;
}  });

正如其他人所说,选择器基于ID,但使用name属性值。因此,您可以添加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更有效


如上所述,名为submit的表单控件将屏蔽表单的提交方法,因此您无法调用form.submit或$'formID.submit。

在JS控制台中检查JS错误。请为所有输入提供ID您正在使用带有ID的jquery选择器,但您的元素没有ID:p请参阅
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 */

}