【发布时间】:2014-10-01 09:06:55
【问题描述】:
您好,我对网页设计和包括 JavaScript 在内的语言还是很陌生。
在强类型的 cshtml 视图中,是否可以仅显示基于复选框的文本字段(其中文本字段和复选框都是强类型的模型?)我在下面创建了一个示例场景:
示例类:
namespace FruitSurveyNameSpace
{
public class FruitSurvey
{
public bool likesFruit { get; set; }
public string fruitName { get; set; }
}
}
示例 cshtml:
<!DOCTYPE html>
@using FruitSurveyNameSpace
@model FruitSurvey
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<p>Like Fruit? @Html.EditorFor(model => model.likesFruit) </p>
<p>Which Fruit: @Html.EditorFor(model => model.fruitName)</p>
</fieldset>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
生成以下html
<form action="/" method="post">
<input name="__RequestVerificationToken" type="hidden" value="blahValue" />
<fieldset>
<legend>Survey</legend>
<p>likesFruit?
<input class="check-box" data-val="true" data-val-required="The likesFruit field is required." id="likesFruit1" name="likesFruit1Name" type="checkbox" value="true" />
</p>
<p>fruitName
<input class="text-box single-line" id="fruitName1" name="fruitName1Name" type="text" value="" />
</p>
</fieldset>
</form>
在上面的示例场景中,只有当用户选择他/她喜欢水果(动态)时,输入水果名称才有意义。否则,水果名称输入没有任何意义,不应显示。此外,我们可能会强制用户在他/她选择喜欢水果复选框后输入水果名称(目前我在非动态生成的字段中使用 [Required] 属性,并且不确定如果变为动态它是否仍然有效)。
我们可以看到,这两个值都是模型的强类型,这就是我使用 html 助手的原因。 有没有办法在不使用 JavaScript 的情况下做到这一点?或者如果没有,我应该如何与 html 助手结合使用?
非常感谢。
【问题讨论】:
-
如果您不使用 javascript,则必须使用多步骤向导来完成,用户必须选择复选框,然后发布表单以刷新页面并查看文本框。
-
我仍在寻找如何将 JavaScript 与 html.editorFor 结合起来。还是我必须放弃 html.editorFor?我在看plus2net.com/javascript_tutorial/enable-disable.php,它看起来很简单,有一个常规的输入标签和一个 onclick 属性。但似乎我无法将 onclick 属性添加到 html.editorFor...
标签: javascript jquery asp.net-mvc checkbox html-helper