2

这是我第一次尝试 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 小提琴:http: //jsfiddle.net/4WesX/

4

1 回答 1

3

您的一个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");
    }
}

小提琴

于 2013-05-29T14:32:39.623 回答