2012-01-06 21 views
1

チェックボックスJQueryプラグインを作成しましたが、チェックボックスの値を取得する場合、チェックボックスの値は常にfalseを返します。私は、プラグインを取り出して生の状態でチェックボックスを使用しましたが、チェックボックスが選択されている場合でもfalseを返します。JQueryチェックボックスの値が機能しない

JAVASCRIPT


function DialogWindowDragMediaItems(userPageType, imageParams, idParams) { 


idParams = idParams.replace(/~/g, "|") 

var divBGContainer = $("<div/>"); 
var lengthVideos = imageParams.split("~").length - 1; 


var divInfoText1 = $("<div/>"); ; 
$(divBGContainer).append(divInfoText1); 
$(divInfoText1).text("What would you like to do with the videos selected?"); 
$(divInfoText1).attr("class", "videosselecteddraginfo"); 


var checkBox1 = $("<input type='checkbox'/>"); 
$(divBGContainer).append(checkBox1); 
$(checkBox1).genCheckBox({ name: 'copymedia', text: 'Move and Copy', checked: true }); 
$(checkBox1).attr("id", "copymediamoveandcopy"); 

var checkBox2 = $("<input type='checkbox'/>"); 
$(divBGContainer).append(checkBox2); 
$(checkBox2).genCheckBox({ name: 'copymedia', text: 'Move and Delete' }); 




var buttonMove = GetDialogWindowButton("Move Items", "DestroyDialogWindowHideTransparent('DialogWindowDragMediaItemsAddID'); WebForm_DoCallback('MainPageControl1','dragmediatomedia~" + userPageType + "~" + idParams + "~' + $('#copymediamoveandcopy').is(':checked'),null,null,null,true)"); 

CreateGenericWindowDialog($(divBGContainer), "DialogWindowDragMediaItemsAddID", 500, "images/mainpage/dialogwindow/titleimageaddmedia.png", "Move Items", "Cancel", buttonMove, true); 


} 


function CreateGenericWindowDialog(content, id, width, imageUrl, title, buttonText, button, destroyAndHideTransparent) { 

var divContainer = $("<div/>"); 
$("body").append(divContainer); 
$(divContainer).attr("class", "divaddvideomediacontrolcontainer"); 
$(divContainer).attr("id", id); 

var divInnerContainer = $("<div/>"); 
$(divContainer).append(divInnerContainer); 
$(divInnerContainer).attr("class", "divaddvideomediainnercontrolcontainer"); 
$(divInnerContainer).css("width", width + "px"); 

var divTopLeftCornerContainer = $("<div/>"); 
$(divInnerContainer).append(divTopLeftCornerContainer); 
$(divTopLeftCornerContainer).attr("class", "divgenericwindowtopleftcorner"); 

var divTopCenterCornerContainer = $("<div/>"); 
$(divInnerContainer).append(divTopCenterCornerContainer); 
$(divTopCenterCornerContainer).attr("class", "divcentergenericwindow"); 
$(divTopCenterCornerContainer).css("width", width - 16 + "px"); 

var divTopRightCornerContainer = $("<div/>"); 
$(divInnerContainer).append(divTopRightCornerContainer); 
$(divTopRightCornerContainer).attr("class", "divgenericwindowtoprightcorner"); 

var imageTitle = $("<img/>"); 
$(divTopCenterCornerContainer).append(imageTitle); 
$(imageTitle).attr("class", "imagetitledialogwindow"); 
$(imageTitle).attr("src", imageUrl); 

var divTitleContainer = $("<div/>"); 
$(divTopCenterCornerContainer).append(divTitleContainer); 
$(divTitleContainer).attr("class", "divgenericwindowtitlecontainer"); 
$(divTitleContainer).text(title); 

var divControlsContainer = $("<div/>"); 
$(divInnerContainer).append(divControlsContainer); 
$(divControlsContainer).attr("class", "divgenericwindowcontrolscontainer"); 
$(divControlsContainer).css("width", width - 6 + "px"); 
$(divControlsContainer).append($(content)); 

var divBottomLeftCornerContainer = $("<div/>"); 
$(divInnerContainer).append(divBottomLeftCornerContainer); 
$(divBottomLeftCornerContainer).attr("class", "divgenericwindowbottomleftcorner"); 

var divBottomCenterContainer = $("<div/>"); 
$(divInnerContainer).append(divBottomCenterContainer); 
$(divBottomCenterContainer).attr("class", "divbottomcentergenericwindow"); 
$(divBottomCenterContainer).css("width", width - 16 + "px"); 

var divBottomRightCornerContainer = $("<div/>"); 
$(divInnerContainer).append(divBottomRightCornerContainer); 
$(divBottomRightCornerContainer).attr("class", "divgenericwindowbottomrightcorner"); 

if (destroyAndHideTransparent) { 
    $(divBottomCenterContainer).append(GetDialogWindowButton(buttonText, "DestroyDialogWindowHideTransparent('" + id + "')")); 
} 
else { 
    $(divBottomCenterContainer).append(GetDialogWindowButton(buttonText, "DestroyDialogWindow('" + id + "')")); 
} 



if (button != null && button.length > 0) { 
    $(divBottomCenterContainer).append(button); 
} 


CenterGenericControl(id); 
$(divContainer).show(); 

} 


function GetDialogWindowButton(text, linkCall) { 

var linkCancel = $("<a/>"); 
$(linkCancel).attr("class", "linkgenericdialogbutton"); 
$(linkCancel).attr("href", "javascript:" + linkCall); 
$(linkCancel).css("marginTop", 14 + "px"); 
$(linkCancel).css("marginRight", 10 + "px"); 

var divCancel = $("<div/>"); 
$(linkCancel).append(divCancel); 
$(divCancel).attr("class", "divlinkaddmediaurlbuttontext"); 
$(divCancel).text(text); 

return linkCancel; 
} 

jQueryのチェックボックスPLUGIN


(function($) { 

$.fn.genCheckBox = function(settings) { 

    var def = { 

     height: 15, 
     width: 15 

    }; 

    settings = $.extend(def, settings) 

    $(this).attr("name", settings.name); 
    $(this).css("display", "none"); 

    $(this).prop("checked", settings.checked); 


    var divContainer = $("<div style='clear:left;float:left;padding:10px;'/>"); 
    $(divContainer).insertAfter(this); 

    var span = $("<span class='checkbox' style='float:left'/>"); 

    if (settings.checked) { 
     $(span).css("background-position", "0px 17px"); 
    } 
    else { 
     $(span).css("background-position", "0px 0px"); 
    } 

    $(divContainer).append(span); 
    //$(span).attr("name", settings.name); 

    var div = $("<div style='float:left;margin-left:10px;disply:block'/>"); 
    $(div).insertAfter(span); 
    $(div).text(settings.text); 

    $(span).click(function() { 

     var position = $(this).css("background-position"); 

     if (position == '0px 0px') { 

      $(".checkbox").css("background-position", "0px 0px"); 
      var el = document.getElementsByName(settings.name); 

      for (var i = 0; i < el.length; i++) { 

       var input = el[i]; 
       $(input).prop("checked", false); 

      } 

      $(this).css("background-position", "0px 17px"); 
      var checkBox = $($(this).parent()).prev(); 
      $(checkBox).prop("checked", true); 
     } 

    }); 


} 



})(jQuery); 
+2

なぜ '$(this).prop(" checked "、settings.checked)'を設定する前に 'if(settings.checked)'をテストしていますか? – Blazemonger

+0

@ mblase75これはちょうど$(this).prop( "checked"、settings.checked)でなければなりません。コードを変更しました。ありがとうございます – redoc01

+0

それはあなたの問題を、万一解決しますか?あなたのコードの実際の例がなければ(http://jsfiddle.net/)、私はそれが何をすべきかを伝えるのは難しいです。 – Blazemonger

答えて

0

私は、ボタンのクリックイベントからアップコードを分割して、私は、チェックボックスから値を取得することができます。奇妙なことに私はまだそれが最初に動作してはならない理由を理解していません。

function DialogWindowDragMediaItems(userPageType, imageParams, idParams) { 


idParams = idParams.replace(/~/g, "|") 

var divBGContainer = $("<div/>"); 
var lengthVideos = imageParams.split("~").length - 1; 


var divInfoText1 = $("<div/>"); ; 
$(divBGContainer).append(divInfoText1); 
$(divInfoText1).text("What would you like to do with the videos selected?"); 
$(divInfoText1).attr("class", "videosselecteddraginfo"); 


var checkBox1 = $("<input type='checkbox'/>"); 
$(divBGContainer).append(checkBox1); 
$(checkBox1).genCheckBox({ name: 'copymedia', text: 'Move and Copy', checked: true, id: 'copymediamoveandcopy' }); 

var checkBox2 = $("<input type='checkbox'/>"); 
$(divBGContainer).append(checkBox2); 
$(checkBox2).genCheckBox({ name: 'copymedia', text: 'Move and Delete' }); 




var buttonMove = GetDialogWindowButton("Move Items", ""); 

CreateGenericWindowDialog($(divBGContainer), "DialogWindowDragMediaItemsAddID", 500, "images/mainpage/dialogwindow/titleimageaddmedia.png", "Move Items", "Cancel", $(buttonMove), true); 


//$(buttonMove).attr("href", "javascript:DestroyDialogWindowHideTransparent('DialogWindowDragMediaItemsAddID'); WebForm_DoCallback('MainPageControl1','dragmediatomedia~" + userPageType + "~" + idParams + "~' + $('#copymediamoveandcopy').is('checked'),null,null,null,true)"); 

$(buttonMove).attr("href", "javascript:MoveItemsClick('" + userPageType + "','" + idParams + "')"); 
} 

function MoveItemsClick(userPageType, idParams) { 

var booleanValue = $('#copymediamoveandcopy')[0].checked; 
DestroyDialogWindowHideTransparent('DialogWindowDragMediaItemsAddID'); 
WebForm_DoCallback('MainPageControl1', 'dragmediatomedia~' + userPageType + '~' + idParams + '~' + booleanValue, null, null, null, true); 
} 
関連する問題