2012-10-16 55 views
0

可能重复:
How to prevent submitting the HTML form’s input field value if it empty空元素传递给URL

如果我有三件输入表单和一个提交按钮。

表1个ID:书
表2编号:音乐
表3 ID:电视

说我把“第一册”书中领域,“Music1”在音乐领域,并没有在电视

http://url/search/?book=Book1&music=Music1&tv= 

什么情况是,即使是没有在“电视”领域,“&电视=”仍然被附加到URL:场,我会得到这个URL。有没有什么办法可以阻止这种情况,或者这是标准的浏览器行为?

回答

1

这是由于浏览器的行为,正如在this answer中所说的那样。

要“克服”这种默认行为,您将不得不使用客户端脚本。最简单的方式非侵入我能想到的是添加此页面上:

<script type="text/javascript"> 
window.onload = function() { 
    for (var i = 0; i < document.forms.length; i++) { 
     var oForm = document.forms[i]; 
     oForm.onsubmit = function() { 
      for (var j = 0; j < this.elements.length; j++) { 
       var element = this.elements[j]; 
       if (element.type === "text" && element.value === "") 
        element.disabled = true; 
      } 
     }; 
    } 
};​ 
</script> 

提交表单时,导致浏览器不为他们发送的任何值这将自动禁用任何空白文本框。

Live test case

1

这是标准和合乎逻辑的行为。 “没有价值”与“空值”不一样。