我是网络编程的新手,我想要验证以下表单。为什么下面的javascript没有被执行?
<form name="feature_request_view" action="FeatureRequestView.php" method="post" onsubmit="return validateAllFields()">
<p id="errorMsg" style="color:red"> </p>
<div class="noboder">
<label for="approval">* Approve the feature request?:</label>
<input type="radio" name="approval[]" id="approval" value="1" /> Yes
<input type="radio" name="approval[]" id="approval" value="0" /> No
*
</div>
<div class="button-style">
<input type="submit" value="Submit" />
</div>
</form>
JavaScript代码如下:
<script type="text/javascript" src="../validation.js"></script>
<script type="text/javascript">
function validateAllFields()
{
var approval = document.getElementsByName("approval");
var errors = document.getElementById("errorMsg");
errors.innerHTML = "";
if(checked(approval, errors, "Please choose an option to approve/disapprove the feature request."))
{
window.alert("got in the if block");
errors.innerHTML = "Your decision has been submitted.";
return true;
}
return false;
}
</script>
而我使用的检查功能是:
function checked(element, error, msg) {
var boxchecked = false;
for (i = 0; i < element.length; i++) {
if (element[i].checked) {
boxchecked = true;
}
}
if (boxchecked) {
return true;
}
else {
error.innerHTML = msg;
return false;
}
}
我的问题是,代码永远不会被执行的JavaScript,因此即使单选按钮没有被填充也会传递它,并开始执行一些我用来填充表格的php。请帮忙!提前致谢。
语法错误?任何显示在控制台中的东西? – 2011-06-14 18:01:40
'name ='approval []“'属性应该是'name =”approval“'以与您的javascript代码相匹配。 – Genzer 2011-06-14 18:03:55
...一致的缩进使得代码更容易遵循。还要明确说明*什么*没有执行。这将导致答案。 – 2011-06-14 18:04:14