1

どちらのチェックボックスもチェックされていない場合、フォーム アクションは 'not_checked.php' にする必要があります。どちらか一方がチェックされていない場合はアクションを変更できますが、両方をチェックすることはできません。これは構文エラーですか?? HTML:

<form id="emf-form" target="_self" enctype="multipart/form-data" method="post" action="test3.php" name="emf-form">



<input type="checkbox" class="ahh" checked id="chg_db_url"> 

...

<input type="checkbox" class="ahh" id="chgact">

Jクエリ:

<script>
    if(!$('#chgact').is(':checked') && !$('#chg_db_url').is(':checked')) {
    $('#emf-form').attr('action', 'not_checked.php');
    };
</script>
4

4 に答える 4

1

私が理解していることから、これを変更するたびにではなく、一度確認したいと考えています。その場合は、DOM の準備が整っていることを確認してください。これを行うにはいくつかの方法があります。ページの最後にコードを配置するのが最も簡単です。

<form id="myform">
    <p>
        <input type="checkbox" id="cb1" name="checkbox1" />My first checkbox
    </p>
    <p>
        <input type="checkbox" id="cb2" name="checkbox2" />My second checkbox
    </p>
</form>

Javascript:

$(function () { // DOM is ready for sure
    if (!$('#cb1').is(':checked') && !$('#cb2').is(':checked')) {
        $('form').attr('action', 'not_checked.php');
    }
});

ただし、チェックボックスが変更されるたびに変更したい場合は、次のコードを試してください。

$(function () { // DOM is ready for sure
    $('#myform').on('change', 'input:checkbox', function () {
        if (!$('#cb1').is(':checked') && !$('#cb2').is(':checked')) {
            $('#myform').attr('action', 'not_checked.php');
        } else {
            $(this).attr('action', 'checked.php');
        }
    });
});

これにより、action属性がそれぞれ「checked.php」と「not_checked.php」に設定されます。

フォームのアクションを示す実際の例を次に示します: http://jsfiddle.net/3znpG/1/

また、1 つの送信ページを使用して、PHP でチェックされているかどうかを確認することをお勧めします。これはより安全です。

于 2013-06-17T13:47:36.020 に答える
1

バッグへのもう1つの答え、どう.filter()ですか?

$('#chgact,#chg_db_url').on('change', function () {
    var len = $('#chgact,#chg_db_url').filter(":checked").length; //will get the length of the 
    if (len === 0) {
        alert("not checked");
    } else {
        alert("checked");
    }
});

または、not()?

$('#chgact,#chg_db_url').on('change', function () {
    var len = $('#chgact,#chg_db_url').not(":checked").length; //will get the length of the 
    if (len === 0) {
        alert("checked");
    } else {
        alert("not checked");
    }
});

if ループと else ループを混同しているかもしれませんが、要点はわかります。

于 2013-06-17T13:54:01.560 に答える