簡體   English   中英

HTML5沒有調用javascript函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM