使用`@using(html.beginform())`JavaScript被禁用?

时间:2016-04-07 20:33:21

标签: javascript html5 asp.net-mvc-5

禁用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>以更改过滤器?

1 个答案:

答案 0 :(得分:1)

您可以在<form>元素中使用Javascript而不会出现问题(假设启用了Javascript),对于使用Html.BeginForm()生成的内容,同样适用。

如果您希望某个环境禁用Javascript,那么您可以考虑在过滤元素更改并显示更新版本(即禁用您的元素)时显式执行帖子以反映这些更改。

您可能还会考虑根本不禁用该元素并仅处理验证服务器端(即确保用户在提交表单时选择了正确/有效的组合,如果没有,则显示验证错误)。