簡體   English   中英

使用jquery選擇器和復選框的if語句

[英]if statement using jquery selectors and checkboxes

我有一個帶有兩個文本輸入字段和一系列復選框的表單。

有一個變量字段 ,用於存儲一些數組,其中包含與所選字段有關的數據。 我將值硬編碼到腳本中沒有問題,但是似乎無法找出如何正確編寫if語句來檢查復選框狀態並僅使用這些值,而不是硬編碼所選字段。

 var start, end, fields; $(function() { $("#form1").submit(function(event) { var endD = $("#endDate").val(); end = endD; var startD = $("#startDate").val(); start = startD; //fields = ['PM1','PM2.5','PM10']; //if $("#PM1").is("checked"))){ //fields = ["PM1"]; //} if ($("PM1").attr("checked")) { fields = ["PM1"]; } event.preventDefault(); build_graph(); }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="form1"> Start Datetime:<br> <input type="text" name="startDate" id="startDate" class="Date" placeholder="YYYYMMDD-HHMM"><br> End Datetime <br> <input type="text" name="startDate" id="endDate" class="Date" placeholder="YYYYMMDD-HHMM"><br> Parameter <br> <input type="checkbox" class="parameter" id="PM1">PM1<br> <input type="checkbox" class="parameter" id="PM2.5" checked>PM2.5<br> <input type="checkbox" class="parameter" id="PM10">PM10<br> <input type="checkbox" class="parameter" id="Temp">Temperature<br> <input type="checkbox" class="parameter" id="Humidity">Humidity<br> <input type="checkbox" class="parameter" id="Pressure">Pressure<br> <input type="checkbox" class="parameter" id="WindSpeed">Wind Speed<br> <input type="checkbox" class="parameter" id="Direction">Direction<br> <input type="checkbox" class="parameter" id="RainVolume">Rain Volume<br> <input type="submit"> </form> 

您可以使用JQuery選擇器僅選中選中的復選框:
$('.myCheckboxs:checked')

這只會給您選中的內容。

使用jQuery,您可以正確檢查是否選中了以下復選框:

if($('#mycheckbox').prop("checked")){
  // it´s checked
}

我的技巧是,使用此功能將表格序列化為對象

$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

然后您可以像這樣序列化表格:

fields = $("#form1").serializeObject()

所有輸入的值和選中的復選框將作為屬性出現

暫無
暫無

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

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