禁用JavaScript时发布此表单时出现问题。
当然,当我删除@using (html.beginform())
时,它解决了问题。
@using (Html.BeginForm("AddTour", "AdminTour", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
<div class="row">
<div class="form-gro`enter code here`up">
<form id="creation" name="creation" onchange="handleSelect()">
<div class="col-md-6">
@{
List<Airlines> AirlineId = ViewBag.AirlinesId;
}
<select id="Airline" name="Airline" disabled>
<option value="">- انتخاب کنید -</option>
@foreach (Airlines c in AirlineId)
{
<option value="@c.Id">@c.Name</option>
}
</select>
</div>
<div class="col-md-6 ">
<select id="TravelType" name="TravelType">
<option value="">- انتخاب کنید -</option>
<option value="A">1</option>
<option value="B">2</option>
<option value="C">3</option>
</select>
</div>
</form>
<script>
function handleSelect() {
if (document.getElementById('TravelType').value == 'A') {
document.getElementById('Airline').disabled = false;
} else {
document.getElementById('Airline').disabled = true;
}
}
</script>
</div>
</div>
}
在我看来,问题是<form>
。
如何更改onchange ="handleSelect()"
或<select>
以更改过滤器?
答案 0 :(得分:1)
您可以在<form>
元素中使用Javascript而不会出现问题(假设启用了Javascript),对于使用Html.BeginForm()
生成的内容,同样适用。
如果您希望某个环境禁用Javascript,那么您可以考虑在过滤元素更改并显示更新版本(即禁用您的元素)时显式执行帖子以反映这些更改。
您可能还会考虑根本不禁用该元素并仅处理验证服务器端(即确保用户在提交表单时选择了正确/有效的组合,如果没有,则显示验证错误)。