IE игнорирует jQuery .val () - PullRequest
       1

IE игнорирует jQuery .val ()

2 голосов
/ 19 декабря 2011

У меня есть следующий бит jQuery для добавления кнопки «очистить» в конец формы поиска: -

$('#search-tools input:last').after($('<input>',{
  'class': 'search-clear'
  , 'val': 'Clear'
  , 'type': 'submit'
  , 'click': function() {
    // do something
  }
}));

Это хорошо работает во всех браузерах, кроме IE;в IE кнопка ввода не получает значение «Очистить» и вместо этого отображает «Отправить запрос».Я неправильно устанавливаю val или это известная проблема IE с jQuery?

Ответы [ 3 ]

4 голосов
/ 19 декабря 2011

Я понял это ...
Вы должны определить свойство 'value' после свойство 'type':

$('<input>', {
    'class': 'search-clear',
    'type': 'submit',
    'value': 'Clear',
    'click': function() {
        // do something
    }
})

Liveдемо: http://jsfiddle.net/b8mk6/10/


IE очищает значение свойства 'value', когда для свойства 'type' установлено значение 'submit'.Итак:

var input = document.createElement( 'input' );

input.value = 'test...';
input.type = 'submit'; // the value is cleared

document.body.appendChild( input );

Живая демоверсия: http://jsfiddle.net/Z3xQ5/1/

1 голос
/ 19 декабря 2011
$( '<input>', {
    'class':'search-clear',
     'type': 'submit',
    'click': function () {}
}).appendTo( 'body' );
$('.search-clear').attr('Value','Clear');

это работает по какой-то причине

0 голосов
/ 19 декабря 2011

Я думаю, что это из-за type элемента ввода.Попробуйте установить значение button вместо submit, если вы не хотите, чтобы это действовало как кнопка отправки, это работает очень хорошо.Попробуйте это.

$( '<input />', {
    'class': 'search-clear',
    'value': 'Clear',
    'type': 'button',
    'click': function () {}
}).appendTo( 'body' );

http://jsfiddle.net/b8mk6/11/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...