Jquery изменить скрытое значение поля формы - PullRequest
2 голосов
/ 12 сентября 2010

У меня есть этот код, но он не работает на моем локальном хосте, и я не знаю почему.Кто-нибудь может пролить свет на это?

(Сценарий в голове, а другой код в теле)

<script type="text/javascript">
$(function(){
 $(input[name='jsenabled']).val('1');

});
</script>



 <input type="hidden" name="jsenabled" value="0" />
    <label for="signup-email">Sign up for email offers, news &amp; events:</label>
    <input type="text" name="signup-email" id="signup-email" />
    <input type="submit" id="signup-button" value="Sign Me Up!" />
    <p id="signup-response"></p>
</fieldset>

РЕДАКТИРОВАНИЕ Странная вещь, я добавил этот код, чтобы проверить, еслизначение было изменено, и оно выдает предупреждение, но firebug не регистрирует изменение.

$("input[name='jsenabled']").val("1");
    if($("input[name='jsenabled']").val = '1') {
    alert('frf');
    }

Ответы [ 5 ]

10 голосов
/ 12 сентября 2010
  1. Селекторы jQuery являются строками: они должны заключаться в кавычки

  2. jQuery.val () - это метод, а не свойство. Не забывайте скобки.

  3. Оператор сравнения: ==, а не =.

В основном вам нужно быть осторожнее с синтаксисом.

3 голосов
/ 12 сентября 2010

Вам нужны кавычки вокруг селектора, например:

$(function(){ 
  $("input[name='jsenabled']").val('1'); 
});

Также при проверке значения используйте круглые скобки, например:

if($("input[name='jsenabled']").val() == '1') {
  alert('frf');
}

.val() - это функция, которая вызывается без каких-либо аргументов. возвращает значение.

В более широком смысле обратите внимание на консоль, поскольку Firebug должен выдавать здесь ошибки JavaScript для каждогоиз них консоль (которая показывает ошибки) - ваш лучший ресурс здесь.

3 голосов
/ 12 сентября 2010

Попробуйте $("input[name='jsenabled']").val('1'); Обратите внимание на двойные кавычки, которые я добавил.

edit Другие проблемы в ответах Ника и Альваро

1 голос
/ 12 сентября 2010

Можете ли вы попробовать это $('input[name="jsenabled"]').val('1');

0 голосов
/ 12 сентября 2010

Альваро, как правило, прав, но даже с правильным синтаксисом вы не сможете изменить значение скрытых полей, хотя jQuery считает их доступными только для чтения, если я распознаю правильные.

Я встречалЭта проблема для меня несколько недель назад, мое решение было обычным вводом с классом css 'hidden'

.hidden {
  display: none;
}

, впоследствии вы могли просто изменить значение скрытого поля ввода:

jQuery('#field_id.hidden').val('new_field_value');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...