Javascript - 删除隐藏字段或在表单提交前设置为空

时间:2012-01-29 13:41:11

标签: javascript html forms dom


我希望删除2个隐藏字段,或者在使用复选框上的onclick事件执行POST操作之前将其设置为null。

这就是我所拥有的 -

<input type="hidden" id="ci" name="ci" value="2"/>
<input type="hidden" id="pg" name="pg" value="prev"/>

<form:checkboxes path="choices" items="${lookups}" itemValue="id" itemLabel="label" element="li" **onclick="this.form.submit();"**/>

如何修改我的onclick事件JS以支持此功能?

谢谢!

4 个答案:

答案 0 :(得分:4)

只需将onclick更改为此:

onclick="document.getElementById('ci').value = ''; document.getElementById('pg').value = ''; this.form.submit();"

您只需使用元素的ID然后将其值分配给空字符串 - 这仍然会发送值。要禁用任何值,请禁用这些元素:

onclick="document.getElementById('ci').disabled = true; document.getElementById('pg').disabled = true; this.form.submit();"

答案 1 :(得分:2)

$("input[type='hidden']").each(function(){

  $(this).reset();

});

............................................... ........要么......................................... .............

以下代码由javascript组成。这可能有用

oForm = getElementById('form_id');

var frm_elements = oForm.elements;

for (i = 0; i < frm_elements.length; i++)

{

field_type = frm_elements[i].type.toLowerCase();
switch (field_type)
{
case "text":
case "password":
case "textarea":
case "hidden":
    frm_elements[i].value = "";
    break;
case "radio":
case "checkbox":
case "select-one":
case "select-multi":
default:
}

}

答案 2 :(得分:-1)

点击onclick调用一个调用submit的函数。使用jQuery很容易做到这一点

function doform(){
    $.each($('input[type=hidden]'), function(input){
        $(input).val('');
    });
 }

修改你的onclick来调用它。你也可以通过普通的DOM访问使用getElementsByTagName并过滤类型甚至是对getElementById的直接调用来实现它

function doform(){
  var i1 = document.getElementById('pg');
  i1.value = '';
  var i2 = document.getElementById('ci');
  i2.value = '';
 }

答案 3 :(得分:-1)

更改您的onclick部分,如下所示。

onclick="javascript:Clicked();"

然后在head标签下的客户端javascript中定义你的onclick函数。

<Head>
<script language=javascript>
function Clicked()
{
 //1. Write code to hide fields
 document.forms[0].submit(); 
}
</script>
</Head>