using `@using (html.beginform())` JavaScript is Disabled?

using `@using (html.beginform())` JavaScript is Disabled?

本文关键字:is Disabled JavaScript beginform @using html using      更新时间:2024-02-22

禁用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>以更改筛选器?

您可以在<form>元素中使用Javascript而不会出现问题(假设启用了Javascript),使用Html.BeginForm()生成的元素也是如此。

如果您期望的环境将禁用Javascript,那么您可能会考虑在筛选元素更改时显式执行post,并显示更新的版本(即禁用元素)以反映这些更改。

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