簡體   English   中英

如何在不使用隱藏屬性的情況下獲取未選中的復選框值?

[英]How to get unchecked checkbox value in jquery without using hidden attribute?

如果選中此復選框,則返回值為:

/doCheckBox.asp?checkbox-1=true

如果未選中該復選框,那么我沒有任何響應:

/doCheckBox.asp?

有什么方法可以使用隱藏屬性返回未選中的checbox值widouth嗎?

doCheckBox.asp

<%
Option Explicit
Response.Expires = 0

Dim cb1
cb1 = Request("checkbox-1")
Response.Write(cb1)
%>

checkBox.html

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title></title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

  <script>
  $(document).on("ready", function() {

    $('input').checkboxradio();
    $('button').button();

    $('#button').on('click', function(){

      var cb2 = $('#checkbox-2').prop('checked') ? true : false;
      var cb1 = $('#checkbox-1').prop('checked') ? true : false;
      var cb3 = $('#checkbox-3').prop('checked') ? true : false;
      var cb4 = $('#checkbox-4').prop('checked') ? true : false;
      var cb5 = $('#checkbox-5').prop('checked') ? true : false;

      alert(" " + cb1 + " " + cb2 + " " + cb3 + " " + cb4 + " " + cb5)

      submitForm();

    });

  });

  function submitForm() {

      $('#form1').attr('action', "doCheckBox.asp").submit( function(){
        var cb1 = $('#checkbox-1').prop('checked') ? true : false;
        $('#checkbox-1').val(cb1);

      });

    }

  </script>

</head>
<body>
  <div class="widget">

    <h2>Checkbox</h2>
    <form id="form1" method="get">

      <fieldset>
        <legend>Hotel Ratings: </legend>
        <label for="checkbox-1">1 Star</label>
        <input type="checkbox" name="checkbox-1" id="checkbox-1">
        <label for="checkbox-2">2 Star</label>
        <input type="checkbox" name="checkbox-2" id="checkbox-2">
        <label for="checkbox-3">3 Star</label>
        <input type="checkbox" name="checkbox-3" id="checkbox-3">
        <label for="checkbox-4">4 Star</label>
        <input type="checkbox" name="checkbox-4" id="checkbox-4">
        <label for="checkbox-5">5 Star</label>
        <input type="checkbox" name="checkbox-5" id="checkbox-5">

        <button id="button" type="submit" onClick="submitForm()">Open Dialog</button>

      </fieldset>
    </form>

  </div>

</body>
</html>

發布表單時,發布中僅包含啟用的表單元素。 未勾選的復選框被視為未啟用,因此,如您所知,您不會獲得顯式傳遞的值。

您可以通過在復選框后直接添加隱藏的輸入來解決此問題,例如:

<input type="checkbox" name="checkbox-1" id="checkbox-1">
<input type="hidden" name="checkbox-1" value="false">

它們必須具有相同的name ,並且必須按此順序顯示(復選框,然后是隱藏的輸入)。

發布表單時,如果選中該復選框,它將采用第一個表單元素(復選框的值( true ));如果未選中該復選框,它將退回到隱藏的輸入並采用該值( false ) 。

暫無
暫無

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

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