JavaScript重定向到下一页错误

时间:2018-06-08 08:15:23

标签: javascript asp.net

我完全是javascript的noob,我刚开始学习而且卡住了。 我正在开发ASP.NET应用程序,在我看来,我创建了JavaScript函数,需要检查是否选中了复选框,如果选项为是或否,则需要重定向到下一个查看。 对于选项是完美工作,但当我选择“否”时,它显示所需的消息,在控制台中我得到错误

  

未捕获的TypeError:无法读取null的“已检查”属性   在YesNoChecked(CreateManually:940)   在HTMLButtonElement.onclick(CreateManually:886)

所以我的代码到目前为止

    function YesNoChecked() {
        var Yes = document.getElementById('Yes');
        var No = document.getElementById('No');

        if (document.getElementById('Yes').checked ==true) {
            console.log('Successfull');
        }
        if (document.getElementById('No').checked==false) {
            console.log('Error');
        }
    }

HTML

<div class="form-group">
  @Html.LabelFor(model => model.Chapel, htmlAttributes: new { @class = "control-label col-md-3" })
  <div class="col-md-9">
  <label class="radio-inline">
    @Html.RadioButtonFor(model => model.Chapel, "Yes", new { @class = "styled", htmlAttributes = new { @checked = "true" } })
    Yes
  </label>
  <label class="radio-inline">
    @Html.RadioButtonFor(model => model.Chapel, "No", new { @class = "styled", htmlAttributes = new { @checked = "true" } })
    No
  </label>
    @Html.ValidationMessageFor(model => model.Chapel, "", new { @class = "text-danger" })
  </div>
</div>

所以基本上,要么选择“否”或“是”需要重定向到下一个视图,但是当选择选择为“否”时,它需要隐藏名为Chapel的元素。 请帮帮我们:/

如果您需要更多代码让我知道,我会发布

更新

按钮点击

 <button type="submit" onclick="YesNoChecked()" class="btn btn-success"><i class="icon icon-check position-left"></i> Proceed to Payment</button>

Radiobutton是HTML

   <input class="styled" htmlattributes="{ checked = true }" id="Chapel" name="Chapel" type="radio" value="Yes" autocomplete="off">

Radiobutton无HTML

<input checked="checked" class="styled" htmlattributes="{ checked = true }" id="Chapel" name="Chapel" type="radio" value="No" autocomplete="off">

1 个答案:

答案 0 :(得分:0)

生成复选框的代码错误。至少在asp.net核心中你应该收到错误“方法没有重载'CheckBoxFor'需要3个参数”

如果模型中的Chapel是bool属性,则会为其创建一个复选框:

@Html.CheckBoxFor(m => m.Chapel, new { id="Yes", @class = "styled", htmlAttributes = new { @checked = "true" } })

如果你想要单选按钮:

@Html.RadioButtonFor(model => model.Chapel, true, new { id = "Yes", @class = "styled" }) Yes <br/>
@Html.RadioButtonFor(model => model.Chapel, false, new { id = "No", @class = "styled" }) No

这将为您正确创建两个html元素,其中包含“是”和“否”,并且会让您的js工作:

function YesNoChecked() {
    var Yes = document.getElementById('Yes');
    var No = document.getElementById('No');

    if (Yes.checked ==true) {
        console.log('Successfull');
    }
    if (No.checked==false) {
        console.log('Error');
    }
}