繁体   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