我完全是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">
答案 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');
}
}