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

Javascript-在提交表单之前删除隐藏字段或设置为空,javascript,html,forms,dom,Javascript,Html,Forms,Dom,在使用复选框上的onclick事件执行POST操作之前,我想删除表单中的2个隐藏字段或将它们设置为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"

在使用复选框上的onclick事件执行POST操作之前,我想删除表单中的2个隐藏字段或将它们设置为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以支持此功能

谢谢

$(“输入[type='hidden'])。每个(函数(){

})

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

oForm=getElementById('form_id')

var frm_elements=oForm.elements

for(i=0;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:
}

}

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

function doform(){
    $.each($('input[type=hidden]'), function(input){
        $(input).val('');
    });
 }
修改onclick以调用它。您还可以通过使用getElementsByTagName进行普通DOM访问,并根据类型进行筛选,甚至直接调用getElementById

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

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

onclick="javascript:Clicked();"
然后在客户端javascript的head标记下定义onclick函数

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

函数单击()
{
//1.编写代码以隐藏字段
document.forms[0]。提交();
}

只需将
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();"

你为什么要这样做?这是JQuery。我想他想要的是纯JS。当隐藏字段是唯一感兴趣的字段时,你不需要switch语句,但是如果你要使用switch语句,你需要在隐藏字段之前使用break语句,否则它也会清除上面列出的所有类型。关于jquery,您确定它有重置方法吗?(如果是的话,你能提供一个指向文档的链接吗?@nnnnnn这是jquery doc->forms->reset方法的链接。该链接用于“:reset”选择器。我不相信有重置方法。这并没有告诉他如何隐藏或取消字段,这是问题的一部分。另外,生成脚本标记时不需要language=javascript。@tkone我只是解释一下基本结构,让他开始使用。虽然不需要放置javascript标记,但这是一个需要遵循的标准,因为您可以放置许多类型的内联脚本。关于清空字段,上面已经提供了答案。$('input[type=“hidden”]”)。val(“”);-你不需要。每个()都更容易。我不知道jquery会隐式地将函数应用于一组匹配的节点。
onclick="document.getElementById('ci').disabled = true; document.getElementById('pg').disabled = true; this.form.submit();"