javascript函数不起作用

时间:2012-07-08 11:43:14

标签: javascript html google-chrome alert

我目前正在开发一个网站。如果用户按下按钮,则需要调用javascript函数。我将此功能简化为:

<html>
<head>
<script type="text/javascript">
function newProd(number,customer,software,hardware,name)
{
       //I simplified this function
       alert('number is: '+number+'customer is: '+customer+' software is: '+software+' hardware is: '+hardware+' name is: '+name);
}
</script>
</head>

<body>
     <input type="text" name="textfieldCustomer"><br>
     <input type="text" name="textfieldSoftware"><br>
     <input type="text" name="textfieldHardware"><br>
     <input type="text" name="textfieldDescription"><br>
     <input type="button" name="button" value="go to function" onClick="newProd('a number',textfieldCustomer.value,textfieldSoftware.value,textfieldHardware.value,textfieldDescription.value)">
</body>

当用户按下Internet Explorer中的按钮时,该功能完美运行!不幸的是,该功能在Chrome或Safari中无效。

有没有人知道出了什么问题?

2 个答案:

答案 0 :(得分:3)

表单字段不应该被定义为全局变量。也许在IE浏览器中,但这不是你可以依赖的行为。试试这个:

onClick="newProd('a number',
    this.form.textfieldCustomer.value,
    this.form.textfieldSoftware.value,
    this.form.textfieldHardware.value,
    this.form.textfieldDescription.value)">

哦,然后添加一个表单来包装输入。

演示:http://jsfiddle.net/kdUMc/

答案 1 :(得分:0)

在我看来,你的代码中存在两个重大错误。首先,对输入字段的访问是错误的。它需要连接到实例变量,例如'document'。第二个,缺少表单标记。如果将输入字段包装到表单标记中,则可以访问Esailija发布的值。