IE忽略jQuery .val()

时间:2011-12-19 16:03:41

标签: jquery forms internet-explorer

我有以下一点jQuery用于在搜索表单的末尾添加“清除”按钮: -

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

这适用于IE以外的所有浏览器;在IE中输入按钮没有设置值“清除”,而是显示“提交查询”。我是否错误地设置了val,或者这是jQuery的已知IE问题?

3 个答案:

答案 0 :(得分:4)

我已经明白了...... 您必须在 'value'属性后定义'type'属性

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

现场演示: http://jsfiddle.net/b8mk6/10/


'value'属性设置为'type'时,

IE 清除 '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 :(得分:1)

$( '<input>', {
    'class':'search-clear',
     'type': 'submit',
    'click': function () {}
}).appendTo( 'body' );
$('.search-clear').attr('Value','Clear');

这可以出于某种原因

答案 2 :(得分:0)

我认为这是因为输入元素的type。如果您不希望此操作像提交按钮一样,请尝试将其设置为button而不是submit,它的效果非常好。试试这个。

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

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