这是我第一次尝试 Javascript,但大约两个小时后我无法弄清楚我犯了什么错误。我确信它是小东西,但我一直无法弄清楚为什么它在 JSFiddle 中不起作用。
这是 HTML:
<form name="myForm" onsubmit="return validateForm()" method="post">
<!--Question Block One-->
Do you have a name?
<br>
Yes<input type="radio" name="first" value="yes">
No<input type="radio" name="first" value="no">
<br>
<input type="submit" value="Submit">
</form>
这是 JS:
function validateForm()
{
var x=document.forms["myForm"]["first"].value;
if (x==null || x=="")
{
alert("Please answer the first question!");
return false;
}
else if (x=="yes")
{
alert("Thanks");
}
else if (x=="no"
{
alert("Sorry, we can't help");
}
}
错误:
{"error": "Shell form does not validate{'html_initial_name': u'initial-js_lib', 'form': <mooshell.forms.ShellForm object at 0x9b6da8c>, 'html_name': 'js_lib', 'html_initial_id': u'initial-id_js_lib', 'label': u'Js lib', 'field': <django.forms.models.ModelChoiceField object at 0x98e9c0c>, 'help_text': '', 'name': 'js_lib'}{'html_initial_name': u'initial-js_wrap', 'form': <mooshell.forms.ShellForm object at 0x9b6da8c>, 'html_name': 'js_wrap', 'html_initial_id': u'initial-id_js_wrap', 'label': u'Js wrap', 'field': <django.forms.fields.TypedChoiceField object at 0x9ccfe4c>, 'help_text': '', 'name': 'js_wrap'}"}
这是 JS fiddle :http://jsfiddle.net/4WesX/
最佳答案
您的 else if
语句之一缺少右括号,请参阅此处:
else if (x=="no"
编辑:实际上,问题远不止于此。
您没有正确查询这些单选按钮的值。首先,给他们 ID:
Yes<input type="radio" id="yes" name="first" value="yes">
No<input type="radio" id="no" name="first" value="no">
然后你可以这样做:
function validateForm()
{
var yes = document.getElementById("yes");
var no = document.getElementById("no");
if (!yes.checked && !no.checked)
{
alert("Please answer the first question!");
return false;
}
else if (yes.checked)
{
alert("Thanks");
}
else if (no.checked)
{
alert("Sorry, we can't help");
}
}
关于javascript - 示例 HTML + JS 表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816706/