[英]HTML5 not calling javascript function
由於某些我無法理解的原因,以下代碼不起作用:
<!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>
盡管有onclick
調用,也不會調用submit_click()
函數。
這個問題與調用progExe()
的行有關 - 你在函數調用中構建的字符串缺少部分之間的加號。
這個缺失的加號是語法錯誤,並使其成為無效的Javascript代碼。 這反過來意味着整個代碼塊無效,這意味着瀏覽器根本不會執行它。
為了證明這一點,我們可以注釋掉progExe()
行。 這將刪除語法錯誤,因此其余代碼將被視為有效,因此您將發現alert()
開始工作。
修復錯誤當然也將解決問題。 在VU.cellNo.value
之后添加加號。
一旦你看到它就很明顯了,但它很容易被錯過,它證明了為什么用一個體面的編輯器編寫代碼是個好主意。 如果您在具有良好語法突出顯示功能的文本編輯器或IDE中打開代碼,它將向您顯示問題的確切位置。 例如,Netbeans將使用錯誤消息標記該行。 這使得找到這些東西變得更容易。
您在progExe中的字符串中缺少一個+。
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);
至
progExe("http://web.devit.co.za/PEMObi/Pages/HomePage/Homepage.aspx?CellNumber="+VU.cellNo.value+"&PIN="+VU.pin.value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.