1

ボタンが 2 つある jquerymobile ページがあります。1 つはすべてのチェックボックスをオンにし、もう 1 つはすべてのチェックボックスをオフにします。最初にクリックするcheck allと機能しますが、チェックを外すと機能しなくなります。

これが私のコードです:

<div data-role="page" id="selecttest">

    <div data-role="header">
        <a href="#sc" data-icon="home">SSC</a>
        <h1>...</h1>
    </div><!-- /header -->

    <div data-role="content">
        <fieldset class="ui-grid-a">
            <div class="ui-block-a"><button onclick="$('#selecttest input[type=checkbox]').attr('checked','checked').checkboxradio('refresh');" data-theme="b">check all</button></div>
            <div class="ui-block-b"><button onclick="$('#selecttest input[type=checkbox]').removeAttr('checked').checkboxradio('refresh');" data-theme="b">uncheck all</button></div>
        </fieldset>
        <fieldset data-role="controlgroup">
            <input type="checkbox" name="checkbox-v-2a" id="checkbox-v-2a">
            <label for="checkbox-v-2a">One</label>
            <input type="checkbox" name="checkbox-v-2b" id="checkbox-v-2b">
            <label for="checkbox-v-2b">Two</label>
            <input type="checkbox" name="checkbox-v-2c" id="checkbox-v-2c">
            <label for="checkbox-v-2c">Three</label>
        </fieldset>
    </div>
</div><!-- /page -->

jQuerymobile 1.3でjQuery 1.9.1を使用しています

私はすでにJQuery Mobileですべてのチェックボックスを選択または選択解除する方法を見てきましたか? しかし、それは私を助けていません。

4

2 に答える 2

10

jQuery 1.9 は、1.6 で .attr に対して行われ、1.6.1 で削除された変更を復活させました。これは、.attrvs.propが厳密に戻ったことを意味します。プロパティを操作する必要がある場合は を使用し.prop、それ以外の場合は を使用します.attr。実際にこの属性を使用したいと思うことはほとんどありません。

チェックボックスのチェック状態については、.prop("checked",true)またはを使用する必要があります.prop("checked",false)

于 2013-02-22T19:51:07.523 に答える
0

$('h3 :checkbox').change(function(e) {
    e.preventDefault();

var tasiyici = "form1";

		if($(this).prop("checked")== true)
		{
		tumunuSec(tasiyici,true);
		}else{
		tumunuSec(tasiyici,false);	
		}


});

$('#form1 input[type=checkbox]').change(function(e) {
    e.preventDefault();
	var truesayisi = $("#form1 input[type=checkbox]:checked").size();
	var checksayisi = $("#form1 input[type=checkbox]").size();
		if(truesayisi == checksayisi)
		{
			$('h3 :checkbox').prop("checked",true);
		}	
		if(truesayisi < checksayisi)
		{
			$('h3 :checkbox').prop("checked",false);
		}
});

function tumunuSec(FormAdi, cvalue){
		var truesayisi = 0;
    $.each($("#"+FormAdi+" input[type=checkbox]"), function(){
        $(this).prop("checked",cvalue).checkboxradio("refresh");
		truesayisi++;

    });		


}
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<link href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.css" rel="stylesheet"/>
<script src="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.5/jquery.mobile.min.js"></script>


<div class="cont-a" style="min-width:280px !important; width:90% !important; max-width:380px !important;">
	<h3  style="padding:8px; margin:0px !important; background:#222; border-radius:4px; text-align:center;">
	<input type="checkbox" name="secici" id="secici" style="margin:0px;" class="tipso" title="Select All"><p>TOPLU İŞLEM</p></h3>
	<form action="kontrol.php" method="post" data-ajax="false" style="padding:0px; margin:0px;">
		<fieldset class="ui-field-contain" data-role="controlgroup" id="form1" data-filter="true" STYLE="width:100%; border:0px solid #ffcc00">
			<input type="checkbox" name="menuler[]" value="1" id="1">
			<label for="1">Menü 1</label>
			<input type="checkbox" name="menuler[]" value="2" id="2">
			<label for="2">Menü 2</label>
			<input type="checkbox" name="menuler[]" value="3" id="3">
			<label for="3">Menü 3</label>

		</fieldset>
				<div class="no-results" >Kayıt bulunamadı.</div>	
		<input type="submit" value="yolla" />
	</form>
</div>

于 2016-09-20T23:36:04.470 に答える