Javascript 检查文本字段的脚本不适用于chrome

Javascript 检查文本字段的脚本不适用于chrome,javascript,google-chrome,Javascript,Google Chrome,我有一个表单和java脚本,用于检查文本字段是否为空。问题是,代码可以与IE和Firefox一起使用,但不能与chrome一起使用 <form action="editor.php?id=<?=$id_book?>" method="post" name="form1" onsubmit="return check_form(this)" > <script language="javascript"> function check() {

我有一个表单和java脚本,用于检查文本字段是否为空。问题是,代码可以与IE和Firefox一起使用,但不能与chrome一起使用

<form action="editor.php?id=<?=$id_book?>" method="post" name="form1" onsubmit="return check_form(this)" >
  <script language="javascript">
    function check()
    {
      if ((document.all.title.value==""))
      { 
        alert("Отсутствует название книги!"); 
      }

      if ((document.all.price.value==""))
      {
        alert("Отсутствует цена книги!"); 
      }

      if ((document.all.descrip.value==""))
      { 
        alert("Отсутствует описание книги!"); 
      }
      else
      {
        document.all.form1.submit();
      }
    }
  </script>
  <div class="list-group"> 
    <div class="input-group input-group-lg">
      <span class="input-group-addon"><div class="inp_width">Название:</div></span>
      <input type="text" name="title" class="form-control" value="<?=$value['title']?>">
    </div><br />  

    <div class="input-group input-group-lg">
      <span class="input-group-addon"><div class="inp_width">Цена:</div></span>
      <input type="text" name="price" class="form-control" value="<?=$value['price']?>">
    </div><br />

    <div class="input-group input-group-lg">
      <span class="input-group-addon"><div class="inp_width">Описание</div></span>       
      <textarea type="text" name="descrip" class="myform-control"  rows="5"><?=$value['descrip']?></textarea>
    </div><br />

    <?php endforeach; ?> 
    <div class="col-md-12">
      <div class="col-md-2"><button type="button" value="Submit" class="btn btn-primary" onclick="check()">Редактировать</button>
   </form>
 </div>


Редактировать
有什么想法吗?更大的问题是,若我在chrome中只有一个文件签入,那个么脚本就可以正常工作。提交按钮不工作,只有当我需要检查几个字段


更新:对不起,伙计们。。。一切正常。。。复制粘贴会杀了我。。。类型按钮应该是“提交”而不是“按钮”。。。下次我应该更小心地处理代码:)

您的IF语句看起来不正确。只有最后一个IF语句将停止提交,因为这是与“else”步骤关联的唯一调用。对于javascript,请尝试以下格式:

if (condition1)
  {
   code to be executed if condition1 is true
  }
else if (condition2)
  {
  code to be executed if condition2 is true
  }
else
  {
  code to be executed if neither condition1 nor condition2 is true
  }
此外,如果要检查多个值,并且如果其中任何值不存在,则应尝试某种标志。例如:

If (document.all.title.value==""){
    message += "Title is missing";
}
If (document.all.price.value==""){
    message += "Price is missing";
}

If (message == ""){
     document.all.form1.submit();
}else{
    alert(message)
}
撇开标记错误不谈(见我的评论),(出于某种原因,Mozilla在几年前采用了它)。在以下情况下,您的代码应如下所示:


功能检查表(表格)
{
var元素=form.elements;
if(元素[“title”]。值=“”)
{ 
窗口警报(“зззззззззззззззззззззз;
返回false;
}
如果(元素[“价格”]。值=“”)
{
窗口警报(“аааааааГа!”);
返回false;
}
if(元素[“descrip”]。值==“”)
{ 
窗口警报(“аааааааааааааааа1072;
返回false;
}
}
…
Редактировать
请注意,如果出现错误,该函数将返回
false
,从而阻止表单提交,因为返回值将返回给
onsubmit
事件处理程序(我认为这是您的意图;您调用了该函数,但未在其中定义
check()
函数)。如果存在多个错误,则不应使用多个
alert()
s来打扰用户,但最多只能收集一个
alert()
的错误消息。您可以使用
字符串
值的
数组


但是,由于新的Firefox版本会阻止用户在显示
alert()
时查看文档,因此您应该避免
alert()
,而是在文档中显示错误消息。一种常见的方法是使用脚本化CSS突出显示错误的字段,并将说明特定字段错误的消息放在整个表单的框中,或放在有问题的控件旁边。也可以考虑。

我已经重新格式化了你的代码,使它变得可读。请下次自己做。正如您现在看到的那样:
script
元素需要一个
type
属性(HTML4),或者必须删除
language
属性(HTML5);
div
元素不允许出现在
span
元素中;启动
div
元素,但在结束
div
元素之前先结束
form
元素。至于PHP,
endforeach
foreach
丢失了(我确保没有意外删除它)。foreach被删除了,只是为了使代码更小。感谢您的编辑。下次请阅读。“不工作”不是问题描述。
<form … onsubmit="return check_form(this)">
  <script type="text/javascript">
    function check_form (form)
    {
      var elements = form.elements;

      if (elements["title"].value == "")
      { 
        window.alert("Отсутствует название книги!"); 
        return false;
      }

      if (elements["price"].value == "")
      {
        window.alert("Отсутствует цена книги!"); 
        return false;
      }

      if (elements["descrip"].value == "")
      { 
        window.alert("Отсутствует описание книги!");
        return false;
      }
    }
  </script>
  …
  <button type="submit" value="Submit" class="btn btn-primary">Редактировать</button>
</form>