1

経由でチェックボックスの値を送信したいのですGETが、出力は常に「オン」です。なんで?チェックボックスがチェックされている場合、「オン」を出力したい。そうでなければ、出力しますnull

私の出力は次のようになります。

ここでデモ

jQuery:

$(document).ready(function(){
    //show loading bar
    $(".searchBtn").click(function(){
        $('#sub_cont').fadeIn(1500);
        $("#content #sub_cont").load("enq_search.php?enq=" + encodeURIComponent($("#enq").val()) + "&hosting=" + $("#hosting").val() + "&domain=" + $("#domain").val(),hideLoader());   
    });
});

HTML:

<table width="500" border="1">
    <tr>
        <td width="102">Enquery</td>
        <td width="382">
            <label for="enq"></label>
            <input type="text" name="enq" id="enq" />
        </td>
    </tr>
    <tr>
        <td>checkbox1</td>
        <td>
            <input type="checkbox" name="hosting" id="hosting" />
            <label for="hosting">hosting</label>
        </td>
    </tr>
    <tr>
        <td>Checkbox2</td>
        <td>
            <input type="checkbox" name="domain" id="domain" />
            <label for="domain">domain</label>
        </td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td>    
            <div class="searchBtn">&nbsp;</div>
        </td>
    </tr>
</table>
4

3 に答える 3

0

チェックされているチェックボックスのデフォルト値*は「オン」です。それをオーバーライドしたい場合はvalue、入力に属性を含める必要がありますが、これは行っていません。例えば:

<input type="checkbox" name="domain" id="domain" value="on" />

ここで、チェックされているかどうかに関係なく、AJAX 呼び出しを介して入力を送信していて、checked プロパティに従って送信する値を変更したいだけなので、jQuery を次のように変更する必要があります。

$('.searchBtn').click(function () {
    var url = 'enq_search.php';
    url += '?enq=' + ($('#enq').prop('checked') ? 'on' : 'null');
    url += '&hosting=' + ($('#hosting').prop('checked') ? 'on' : 'null');
    url += '&domain=' + ($('#domain').prop('checked') ? 'on' : 'null');

    $('#sub_cont').fadeIn(1500).load(url, hideLoader);
});


※正確には、チェックボックスにはデフォルト値がありません。オン/オフの切り替え状態があり、チェックボックスがオンになっている場合にのみ値が送信されます。required 属性がない場合value、ほとんどのブラウザーはスイッチ状態 (または「オン」) をデフォルト値として送信します。

于 2013-07-05T09:58:19.640 に答える
-1

これを試して:

$(document).ready(function () {
    //show loading bar

    $('#hosting').click(function () {
        var thisCheck = $(this);
        if (thischeck.is(':checked')) {
            thisCheck.val('true');

        } else {
            thisCheck.val('false');
        }
    });

    $(".searchBtn").click(function () {
        $('#sub_cont').fadeIn(1500);
        $("#content #sub_cont").load("enq_search.php?enq=" + encodeURIComponent($("#enq").val()) + "&hosting=" + $("#hosting").val() + "&domain=" + $("#domain").val(), hideLoader());
    });
});
于 2013-07-05T10:25:57.883 に答える