是否有可能不在GET请求中传递一些表单字段?

时间:2010-04-08 08:32:04

标签: jquery forms input submit

我有一个表格,其中包含一些在GET中传递的输入文本,我不想在GET中拥有所有字段;我想避免空场。

所以,一个具体的例子:

<form method="GET" action="an_url">
    <input type="text" name="field1"/>
    <input type="text" name="field2"/>
    <input type="text" name="field3"/>
    <input type="submit" value="submit"/>
</form>

我认为html属性“禁用”禁用的字段不应传递给GET。

所以我做了一个js(基于jquery)来禁用提交时的空字段,如下所示:

$("form").submit(function() {
    $(this).find("input[type=text]").each( function () {
        if (!$.trim($(this).val())) {
            $(this).attr("disabled", "true");
        }
    });
});

然而,这不起作用。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

disabled属性只接受一个值disabledtruedisabled。

(设置true 属性是另一回事,它是false或{{1}})

答案 1 :(得分:2)

您可以删除name属性,如下所示:

 $("form").submit(function() {
     $(this).find("input[type=text]").each( function () {

        if (!$.trim($(this).val())) {
            $(this).removeAttr("name");
        }
     });
 });

来自W3C Recommendation

  

当提交表单进行处理时,某些控件的名称与其当前值配对,并且这些对与表单一起提交。提交名称/值对的控件称为成功控件。