3

jqueryダイアログにフォームがあります。フォームが送信されたら、選択したチェックボックスの値を取得するにはどうすればよいですか?

$(document).ready(function(){

var $dialog = $('<div></div>')
    .html('<form id="myform" action=""><input type="checkbox"   id="completeCheck" name="completeCheck" value="" />Complete check<br /><input type="checkbox" name="view" value="Car" /> View report <br /><input type="checkbox" name="consist" value="" />Consistency check<br /><input type="checkbox" name="other" value="" />Other checks<br /><input type="checkbox" name="keyCheck" value="" />Key check<br /><input type="checkbox" name="compareCheck" value="" />Compare check<br /></form>')
    .dialog({
        autoOpen: false,
        title: 'Data check',
        buttons: {
          "Submit Form": function() {  $('form#myform').submit();},
          "Cancel": function() {$(this).dialog("close");}
        }
    });

$('#createNew').click(function() {
    $dialog.dialog('open');
    // prevent the default action, e.g., following a link
    return false;
});

$('form#myform').submit(function(){

  $dialog.dialog('close');
});        


});
4

3 に答える 3

3

実際のデモ http://jsfiddle.net/9mZAJ/2/ または http://jsfiddle.net/9mZAJ/1/

$('#completeCheck').is(':checked')チェックボックスの残りのループとともにトリックを実行し.eachます。デモと以下のコードを参照してください。

これは役立つはずです

すべてのチェック ボックスをループするには、check.eachis(":checked")check を使用していくつかの方法で実行できます。:)

コード

$(document).ready(function(){

var $dialog = $('<div></div>')
    .html('<form id="myform" action=""><input type="checkbox"   id="completeCheck" name="completeCheck" value="" />Complete check<br /><input type="checkbox" name="view" value="Car" /> View report <br /><input type="checkbox" name="consist" value="" />Consistency check<br /><input type="checkbox" name="other" value="" />Other checks<br /><input type="checkbox" name="keyCheck" value="" />Key check<br /><input type="checkbox" name="compareCheck" value="" />Compare check<br /></form>')
    .dialog({
        autoOpen: false,
        title: 'Data check',
        buttons: {
          "Submit Form": function() {  $('form#myform').submit();},
          "Cancel": function() {$(this).dialog("close");}
        }
    });

$('#createNew').click(function() {
    $dialog.dialog('open');
    // prevent the default action, e.g., following a link
    return false;
});

$('form#myform').submit(function(){
    alert('completeCheck checkobox is checked or not ==> ' + $('#completeCheck').is(':checked'));

  $dialog.dialog('close');
});        


});​

このようにループします

$(this).find('input[type="checkbox"]').each(function(){
    alert($(this).is(':checked'));
})

画像

ここに画像の説明を入力

于 2012-07-03T08:16:03.973 に答える
2

$(this).find(":checked")フォームの送信コールバック内で、チェックされているすべてのチェックボックスを取得できます。その後、それらをループして値を取得できます。

たとえば、チェックされたチェックボックスの名前とその値を配列に保存する方法の例を次に示します。

$('form#myform').submit(function(){
  // Store names of the checkboxes and their values in an array
  var values = []; 
  $(this).find(":checked").each(function () {
     values[$(this).prop("name")] = $(this).val();
  });
  $dialog.dialog('close');
});
于 2012-07-03T08:14:52.200 に答える
1

送信機能で:

$(this).find(':checkbox').each(function(){
    if(this.checked)
        alert(this.name + ' is checked');
    else
        alert(this.name + ' is not checked');
});

http://jsfiddle.net/tricki/mwJqR/2/を参照してください

于 2012-07-03T08:16:19.353 に答える