如何将表单名称动态传递给javascript方法?

时间:2010-07-23 09:06:37

标签: javascript html

我正在尝试动态传递表单名称。但是这个脚本显示错误。

“document.formName未定义”。如何解决此问题。提前谢谢。

<script language="javascript">

function showAll(form,fieldName) {
    var formName = form.name;
    alert(formName);
    document.formName.search_mode.value = "";   
    document.formName.fieldName.value="";
    document.formName.submit(); 
}
</script>
<form name = "dealsManagement" method="post" action="<?=$_SERVER['PHP_SELF']?>">
<input type="hidden" name="search_mode" value="<?php echo $_REQUEST['search_mode'];?>" >
<table border="0" cellpadding="0" cellspacing="0" align="center" width="400" style="padding:2px; border:#ccc solid 1px; margin:15px auto 15px auto;">
<tr>
<td colspan="2" class="text3" align="center" height="35" bgcolor="#cccccc">Search</td>
</tr>
<tr>
<td width="153" height="35" align="right" class="text2" style="padding-right:10px;">Search By  City:</td>
<td width="245"><input type="text" name="city" value= "<?php echo $_POST['city']; ?>" size="24" ></input></td>
</tr>
<tr>
<td height="30">&nbsp;</td>
<td><input name="button" type="button" class="btn" onClick="javascript:dealSearchCity()" value="Search" />
<input name="btnShowAll" type="button" class="btn"value="Show All" onClick="javascript:showAll(this.form,'city');" /></td>
</tr>
</table>
</form>

2 个答案:

答案 0 :(得分:3)

您正在做的事情没有必要。您可以直接使用form

function showAll(form,fieldName) {
    var formName = form.name;
    alert(formName);
    form.elements.search_mode.value = ""; 
    form.elements[fieldName].value="";     
    form.submit(); 
}

两个旁注:

不推荐使用language属性,更好地使用

<script type="text/javascript">

并且您不需要使用javascript:为事件处理程序添加前缀。

答案 1 :(得分:0)

如果要使用字符串而不是文字属性名称,则必须使用square bracket notation