我有一个清除span id中所有元素的函数。 clearForm()有效,但resetForm()没有。
`<script type="text/JavaScript">`
` $(function hideMe() { `
` for(i=0;i<arguments.length;i++) {`
` $("#"+arguments[i]).clearForm().fadeOut();`
` }`
` });`
`</script>`
`<html>`
`...<td><input type="radio" name="third_party" id="third_partyNo" value="No" onClick="hideMe('party_integ');" />No</td>`
'...'
`<span id="party_integ" style="display:none">`
`<table>`
` <tr>`
` <td width="25%">System Type:</td>`
` <td width="22%"><select name="system_type" id="system_type" class="style3" onChange="popCat(this.value);">`
` <option value="" selected="selected">Select one</option>`
` <option value="first">first</option>`
` <option value="second">second</option>`
` <option value="third">third</option>`
` </select></td>`
` </tr>`
`</table>`
`</span>`
答案 0 :(得分:1)
您的代码存在很多问题。
您正在以一种在IE以外的浏览器中不起作用的方式声明您的“hideMe”功能,并且它依赖的IE行为无论如何都严重受损。您将该函数设置为jQuery“ready”处理程序,而不是全局函数。您应该做的是将匿名函数绑定到单选按钮的“单击”事件。您可以在“就绪”处理程序中执行此操作。
“clearForm”功能 - 那是什么?在哪里定义?
如评论中所述,将表放在跨度中是错误的。如果您需要表格的容器,请使用<div>
。
要重置表单,<form>
元素上有一个原生的“重置”功能。也就是说,页面中没有<form>
元素。没有表单元素的输入元素是不正确的,如果没有表单,你将无法进行重置。
答案 1 :(得分:1)
$( “#” +参数[I])。clearForm()
clearForm
与resetForm
不同。
resetForm
将表单字段设置回页面加载时的值s,即。与value="x"
属性中设置的相同。它仅适用于<form>
元素(不是您目前拥有的<span>
),因为它是JavaScript form.reset()
方法的一个基本无意义的包装。
(通过在表单字段上手动设置resetForm
返回value
,可以重新编写defaultValue
来处理非表单,defaultChecked
和defaultSelected
clearForm
。但这不是它目前正在做的事情。)
<select>
将元素内所有输入的值设置为空白,无论它是什么元素。但是,如何删除jQuery.form
框的值?它没有任何意义;您不能在单选下拉列表中选择“无选项”,除非它根本不包含任何选项。
else if (tag == 'select')
this.selectedIndex = -1;
似乎确实试图“选择没有选项”,但它永远不会奏效。第610行:
-1
您无法将selectedIndex设置为0
。您可以尝试更改此代码以将其设置为select-many
以选择第一个选项。 (但这对于jQuery.form
框来说仍然不够。)
通过快速查看{{1}}代码,我怀疑它并不是非常好。
答案 2 :(得分:0)
尝试这个答案: 我在编码质量方面的第二个Pointy。