簡體   English   中英

使用JavaScript禁用HTML的必需輸入onchange單選按鈕

[英]Disable HTML's required input onchange radio button with JavaScript

您能幫我做到這一點,以便它不檢查是否已填寫HIDDEN必需的輸入框嗎?

我有一個具有取件和交貨單選按鈕的訂單系統。 當他們選擇“代答”時,我會將其隱藏在“地址”,“城市”,“州”和“郵政編碼”的輸入框中。 這些盒子是交貨所必需的。 因為它們是必需的,所以即使隱藏了方框,它仍會檢查方框是否已填充。

我在這里具有的腳本功能可以隱藏輸入框,但是它不會讓我繼續前進,因為它仍在檢查輸入框是否已填充。

 < script > function showFunctionDelivery() { var x = document.getElementById("deliveryStuff"); var y = document.getElementById("pickupStuff"); if (x.style.display === "none") { x.style.display = "block"; } else { x.style.display = "block"; } } function showFunctionPickup() { var x = document.getElementById("deliveryStuff"); var y = document.getElementById("pickupStuff"); if (x.style.display === "block") { x.style.display = "none"; } else { x.style.display = "none"; } } < /script> < script src = "assets/js/script.js" > < /script> < / body > 
 <body> <form action="/shipping" method="POST"> <div class="container"> <h1>Delivery/Pick Up</h1> <hr> <input onchange="showFunctionDelivery()" type="radio" class="form-group" id="delivery" name="delivery" checked> Delivery &nbsp <input onchange="showFunctionPickup()" type="radio" class="form-group" id="pickup" name="delivery"> Pick Up &nbsp <br> <!---Needed for order name, date time.--> <div class="row" id="pickupStuff"> <div class="col-sm-3"> Name: ex. John Smith <input required type="text" pattern="\\D+" id="name" class="form-control" value="" name="name"> </div> <div class="col-sm-3"> Desired Date: <input required type="date" id="date" class="form-control" name="date"> </div> <div class="col-sm-3" id="time"> Desired Time: <select class="form-control"> <option value="7am">7am</option> <option value="8am">8am</option> <option value="9am">9am</option> <option value="10am">10am</option> <option value="11am">11am</option> <option value="12pm">12pm</option> <option value="1pm">1pm</option> <option value="2pm">2pm</option> <option value="3pm">3pm</option> <option value="4pm">4pm</option> </select> </div> </div> </div> <br> <!--delivery stuff--> <div class="container" id="deliveryStuff"> <div class="row"> <div class="col-sm-3" id="deliveryOp"> Address: ex. 12345 Plain Dr <input required type="text" id="address" pattern="\\d+\\s\\D+" class="form-control" value="" name="address"> </div> <div class="col-sm-3" id="deliveryOp"> City: ex. Austin <input required type="text" id="city" pattern="\\D+" class="form-control" value="" name="city"> </div> <div class="col-sm-3" id="deliveryOp"> State: <select required class="form-control" id="state" name="statename"> <option value="">Please Select One</option> <option value="AK">Alaska</option> <option value="AL">Alabama</option> <option value="AR">Etc.</option> </select> </div> <div class="col-sm-3" id="deliveryOp"> Zip Code: ex. 12345 <input required id="zip" type="text" pattern="\\d{5}" class="form-control" value="" name="zipcode"> </div> </div> </div><br><br> <script> let d = document.getElementById("delivery"), p = document.getElementById("pickup"); </script> <footer class="container-fluid text-center"> <a href="/billing"><button type="submit" class="btn btn-danger">Next</button></a> </footer> </form> </body> 

showFunctionPickUp()方法showFunctionPickUp()地址,城市,州和郵政編碼的必需屬性設置為false。

    function showFunctionPickup() {
      var x = document.getElementById("deliveryStuff");
      var y = document.getElementById("pickupStuff");
      var address = document.getElementById("address");
      var city = document.getElementById("city");
      var state = document.getElementById("state");
      var zip = document.getElementById("zip");

      x.style.display = "none";
      address.required = false;
      city.required = false;
      state.required = false;
      zip.required = false;
  }

您可以使用removeAttr()方法刪除required屬性。 您可以按以下方式使用它:

$("#address").removeAttr('required');

要再次添加必填字段,請使用attr()方法作為

$("#address").attr('required','');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM