Javascript-在提交表单之前删除隐藏字段或设置为空
在使用复选框上的onclick事件执行POST操作之前,我想删除表单中的2个隐藏字段或将它们设置为null 这就是我所拥有的-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"
<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();"