[英]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.