2010-07-23 81 views
2

我想动态地传递表单名称。但是这个脚本显示错误。如何动态地将表单名称传递给javascript方法?

“document.formName is undefined”。如何解决这个问题。提前致谢。

<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> 
+0

为什么不只是使用表单名称而不是'this'?另外,看看jQuery。这会帮助你很多。看看这里:http://docs.jquery.com,http://docs.jquery.com/API/1.1/Events/Form – Steven 2010-07-23 09:12:11

回答

3

你在做什么是没有必要的。您可以直接使用form

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

2图片的标题说明:

language属性是不鼓励,最好使用

<script type="text/javascript"> 

,你不需要用javascript:前缀事件处理程序。

+0

我想为多种形式使用一个js方法。我希望现在它是有道理的 – Fero 2010-07-23 09:20:53

+0

@Fero它,但仍然绝对没有必要做你在做什么。如果你传递正确的“表单”,它将以多种形式工作没有问题。 – 2010-07-23 09:22:23

+0

@皮卡“如果你通过正确的形式” - >由于我是一个新手,我不明白这个说法。你能解释一下吗? – Fero 2010-07-23 09:27:17

相关问题