Два идентичных кусочка jQuery ведут себя по-разному - PullRequest
0 голосов
/ 03 марта 2011

У меня есть цикл PHP, который выводит кучу ссылок, тогда каждая ссылка имеет href='javascript:$(\"#rnn\").val(" . $foo . ");$(\"#rnnNotifUnsub\").submit();'

Что он должен сделать, это передать определенную часть информации, относящуюся к этой ссылке, к скрытому вводу в #rnnNotifUnsub. Тем не менее, он даже не подчиняется, когда я пробую. Я попытался запустить код, не передавая переменную в скрытый ввод, и он отправил, но, конечно, ничего не сделал. Это означает, что моя проблема заключается в $(\"#rnn\").val(" . $foo . "); испортить код.

Вот моя форма, на всякий случай:

<form action="php/retailerNameNotifUnsub.php" id="rnnNotifUnsub" method="POST">
    <input type="hidden" value="" name="retailerName" id="rnn"/>
    <input type="hidden" value="<?php print(selfURL()); ?>" name="url"/>
</form>

У меня есть идентичный набор кода для идентичной формы, только с разными именами, и это прекрасно работает. Хотя это передает int как переменную, а не строку к скрытому вводу. Возможно, в этом проблема?

Ответы [ 3 ]

2 голосов
/ 03 марта 2011

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

From:

$(\"#rnn\").val(" . $foo . ");

To:

$(\"#rnn\").val(\"" . $foo . "\");
1 голос
/ 03 марта 2011

Встроенный Javascript - плохая идея.Это трудно поддерживать и запутанно.

Я бы дал вашим ссылкам атрибут data-retailer и класс (я буду использовать retailer).Затем вы можете использовать jQuery в теге script, как показано ниже.

$(document).ready(function(){
    $('a.retailer').click(function(e) {
        e.preventDefault();

        $('#rnn').val($(this).data('retailer'));
        $('#rnnNotifUnsub').submit();
    });
});

Пример ссылки:

<a class="retailer" data-retailer="Some Name" href="#">Content</a>
0 голосов
/ 03 марта 2011

Если вы используете «для печати» (эхо «Привет, мир»), Марк прав ... Или ...

href='javascript:$(\"#rnn\").val(\"" . $foo . "\");$(\"#rnnNotifUnsub\").submit();'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...