Используя jQuery, как я могу изменить входное значение, чтобы оно равнялось другому, установив флажок? - PullRequest
0 голосов
/ 29 июля 2009

Я пытаюсь создать форму, в которой пользователь может установить флажок, и его свойства физического адреса будут заполнены его свойствами адреса выставления счета.

Мой флажок выглядит так:

<label for="UseAccountAddress">Use Account Address</label>
<input id="UseAccountAddress" type="checkbox" value="true" name="UseAccountAddress"/>

И пример адреса выглядит так:

<input id="Street1" type="text" value="" name="Street1"/>
<input id="PrimaryAddressLine1" type="hidden" value="123 Hi Street" name="PrimaryAddressLine1"/>

Я попытался добавить этот jquery в мою форму, которая не работает:

<script type="text/javascript">
    $().ready(function() {
        $("UseAccountAddress").click(function() {
            if ($(this).attr("checked")) {
                $("Street1").value = $("PrimaryAddressLine1").value;
                $("Street2").value = $("PrimaryAddressLine2").value;
                $("City").value = $("PrimaryCity").value;
                $("State").value = $("PrimaryStateID").value;
                $("PostalCode").value = $("PrimaryZip").value;
            }
            else {
                $("Street1").value = "";
                $("Street2").value = "";
                $("City").value = "";
                $("State").value = "";
                $("PostalCode").value = "";
            }
        });
    });
</script>

Используя Firebug, я вижу, что моя функция .click выше никогда не получает удар. Я предполагаю, что я должен ссылаться на идентификатор флажка неправильно, но я не уверен, что еще это должно быть. Так как это неверно, то то, как я ссылаюсь на элементы внутри блока if, вероятно, также неверно.

Какой правильный синтаксис для этого?

Ответы [ 3 ]

3 голосов
/ 29 июля 2009

Вы хотите использовать метод val () для получения и установки свойств объектов jQuery, а не свойства value. Вы также должны изменить свой селектор (ы). Когда вы делаете выбор, основываясь на идентификаторе, вам необходимо присвоить ему знак хеш / фунт (#).

$().ready(function() {
    $("#UseAccountAddress").click(function() {
        if ($(this).attr("checked")) {
            $("#Street1").val( $("#PrimaryAddressLine1").val() );
            $("#Street2").val( $("#PrimaryAddressLine2").val() );
            $("#City").val( $("#PrimaryCity").val() );
            $("#State").val( $("#PrimaryStateID").val() );
            $("#PostalCode").val( $("#PrimaryZip").val() );
        }
        else {
            $("#Street1").val('');
            $("#Street2").val('');
            $("#City").val('');
            $("#State").val('');
            $("#PostalCode").val('');
        }
    });
});
2 голосов
/ 29 июля 2009

Вы должны использовать ** # ** UseAccountAddress, а также использовать # в другом месте вашего кода, чтобы указать JQuery, что вы хотите работать с элементом с определенным идентификатором. Обычно «#abc» означает выбор элемента с идентификатором abc, «.def» означает выбор элемента (ов) с классом CSS def.

.
1 голос
/ 29 июля 2009
<script type="text/javascript">
$(document).ready(function() {
    $("#UseAccountAddress").click(function() {
        if ($(this).is(":checked")) {
            $("#Street1").val($("#PrimaryAddressLine1").val());
            $("#Street2").val($("#PrimaryAddressLine2").val());
            $("#City").val($("#PrimaryCity").val());
            $("#State").val($("#PrimaryStateID").val());
            $("#PostalCode").val($("#PrimaryZip").val());
        } else {
            $("#Street1, #Street2, #City, #State, #PostalCode").val('');
        }
    });
});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...