如何解决获得J.S中形式的所有子元素
我如何才能在表单中获取所有子元素(如radio,checkbox,select,text等),并使用javascript将其设为空白。我的表单还有许多其他元素,例如table,div等。但是我不想更改这些其他元素。 通过表单名称(frmlist)或表单id(frmlist)获取这些子元素(form element)并将其留空的任何合适方法。实际上,我以前根本不知道表单中有多少个元素,这些元素的名称/标识是什么。 非常感谢...解决方法
尝试这样的事情:
范例表格:
<form name=\"data_entry\" action=\"#\">
Company Name: <input type=\"text\" name=\"company_name\">
Select Business Type: <input type=\"radio\" name=\"business_category\" value=\"1\"> Manufacturer
<input type=\"radio\" name=\"business_category\" value=\"2\"> Whole Sale Supplier
<input type=\"radio\" name=\"business_category\" value=\"3\"> Retailer
<input type=\"radio\" name=\"business_category\" value=\"4\"> Service Provider
Email Address: <input type=\"text\" size=\"30\" name=\"email\">
Keep Information Private: <input type=\"checkbox\" name=\"privacy\">
<input type=\"button\" name=\"reset_form\" value=\"Reset Form\" onclick=\"this.form.reset();\">
<input type=\"button\" name=\"clear\" value=\"Clear Form\" onclick=\"clearForm(this.form);\">
</form>
示例JavaScript:
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\":
if (frm_elements[i].checked) {
frm_elements[i].checked = false;
}
break;
case \"select-one\":
case \"select-multi\":
frm_elements[i].selectedIndex = -1;
break;
default:
break;
}
}
从使用Java重置或清除表单开始。
, 有时我们忘记了旧的解决方案。为什么不抛弃JavaScript并使用:
<input type=\"reset\" value = \"CLEAR all\"/>
看到这个jsfiddle
, 您应该考虑使用jQuery。就像做一样简单:
$(\':input\')
.not(\':button,:submit,:reset,:hidden\')
.val(\'\')
.removeAttr(\'checked\')
.removeAttr(\'selected\');
, 使用以下函数获取所有表单元素
function getAllFormFields(node)
{
var allFormFields = new Array;
var x = node.getElementsByTagName(\'input\');
for (var i=0;i<x.length;i++)
allFormFields.push(x[i]);
var y = node.getElementsByTagName(\'option\');
for (var i=0;i<y.length;i++)
allFormFields.push(y[i]);
return allFormFields;
}
我一直在浏览quiksmode.org,其功能思想来自quirksmode.org
, 最简单的方法是在表单中添加一个重置按钮(根据KooiInc的回答),它将使所有控件恢复为默认值,而无需编写脚本:
<input type=\"reset\">
就完成了。
如果必须使用脚本(天堂知道原因),请调用表单的reset方法:
<input type=\"button\" value=\"Reset\" onclick=\"this.form.reset()\">
问题的另一部分是当表单中还包含其他元素时如何获取表单中的所有控件(表单必须包含block元素作为子元素才有效)。 HTML表单元素具有一个元素集合,该集合是表单中的所有控件。这是一个简单的属性访问,不需要任何功能或过滤:
var allControls = form.elements;
很简单。 :-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。