1

由于某种我无法理解的原因,以下代码不起作用:

<!DOCTYPE html>
<html>
<head>
<title>Devit Ajax Test</title>
<script language="JavaScript" type="text/javascript" src="js/voucher.js"></script>
</head>
<body onLoad="document.VU.cellNo.focus()">
<form name="VU" id="VU" method="post" >
    <div class="FormItem">
        <label>Cell Number:</label>
        <input type="tel" id="cellNo" name="cellNo" required > 
    </div>
    <p>
    <div class="FormItem">
        <label>PIN:</label>
        <input id="pin" name="pin" type="text" required >
    </div>
    <div class="FormItem">
        <p> 
        <input type="submit" value="Submit" onclick="submit_click()"> 
        </p>  
    </div>
<center>
<div id="loadingNode"></div>
</center>
</body>
</html>
<script>
function submit_click()
{
    alert("progExe()");
    progExe("http://web.devit.co.za/PEMObi/Pages/HomePage/Homepage.aspx?CellNumber="+VU.cellNo.value"&PIN="+VU.pin.value);    
}
</script>

尽管调用,该submit_click()函数永远不会被onclick调用。

4

3 回答 3

4

这个问题与调用的行有关progExe()——您在函数调用中构建的字符串在各部分之间缺少一个加号。

这个缺少的加号是一个语法错误,并使其无效的 Javascript 代码。这反过来意味着整个代码块都无效,这意味着浏览器根本不会执行它。

为了证明这一点,我们可以注释掉这一progExe()行。这将消除语法错误,因此其余代码将被视为有效,因此您会发现alert()开始工作。

修复错误当然也可以解决问题。后面加一个加号VU.cellNo.value

一旦你看到它就很明显,但它是一种很容易被忽略的错误,它证明了为什么使用一个像样的编辑器编写代码是一个好主意。如果您在具有良好语法突出显示功能的文本编辑器或 IDE 中打开代码,它会准确地告诉您问题出在哪里。例如,Netbeans 将使用错误消息标记该行。它使找到这些东西变得容易得多。

于 2013-05-27T20:34:49.437 回答
0

您在 progExe 中的字符串中缺少一个 +。

progExe(" http://web.devit.co.za/PEMObi/Pages/HomePage/Homepage.aspx?CellNumber= "+VU.cellNo.value +"&PIN="+VU.pin.value);

于 2013-05-27T20:12:29.123 回答
0

+的代码中缺少 a :

改变

progExe("http://web.devit.co.za/PEMObi/Pages/HomePage/Homepage.aspx?CellNumber="+VU.cellNo.value"&PIN="+VU.pin.value);  

progExe("http://web.devit.co.za/PEMObi/Pages/HomePage/Homepage.aspx?CellNumber="+VU.cellNo.value+"&PIN="+VU.pin.value);  
于 2013-05-27T20:12:59.263 回答