javascript - 示例 HTML + JS 表单不起作用

标签 javascript html

这是我第一次尝试 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");
    }
}

Fiddle

关于javascript - 示例 HTML + JS 表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816706/

相关文章:

javascript - 修改Superfish菜单jQuery插件

javascript - 删除 Angular 为 4 的 Aux 路由“?

javascript - 如何继承Javascript Date 对象?

java - JSoup 解析 HTML 问题

jquery - 在 jQuery 中提交禁用表单字段的最佳方法?

javascript - 以编程方式调用选项卡捕获会引发异常

javascript - jQuery UI - 多个自动完成 - 结果不一致

html - 使用 Bootstrap 时,如何使初始加载页面适合显示宽度?

html - w3c 标记验证器与符号 (&) 错误

jquery - 在 Handlebars JS 中循环遍历唯一的 json 格式数据