jquery占位符表单在ie中提交

Posted

技术标签:

【中文标题】jquery占位符表单在ie中提交【英文标题】:jquery placeholder form submit in ie 【发布时间】:2014-04-22 11:25:31 【问题描述】:

我使用这个功能来支持 Internet Explorer 中的占位符:

function placeHolder() 
$('[placeholder]').focus(function () 
    var input = $(this);
    if (input.val() == input.attr('placeholder')) 
        input.val('');
        input.removeClass('placeholder');
    
).blur(function () 
    var input = $(this);
    if (input.val() == '' || input.val() == input.attr('placeholder')) 
        input.addClass('placeholder');
        input.val(input.attr('placeholder'));
    
).blur().parents('form').submit(function () 
    $(this).find('[placeholder]').each(function () 
        var input = $(this);
        if (input.val() == input.attr('placeholder')) 
            input.val('');
        
    )
);

我用:

.parents('form').submit(function () 
    $(this).find('[placeholder]').each(function () 
        var input = $(this);
        if (input.val() == input.attr('placeholder')) 
            input.val('');
        
    )

防止提交带有占位符值的输入,

但它不起作用,我搜索其他解决方案,但它们都存在表单提交问题......

每个人都可以帮助我吗?我必须在 ie 中使用占位符...

谢谢

【问题讨论】:

我们在 IE 中使用 this jQuery 插件作为占位符。 @A1rPun 我以前使用过这个 jquery,但是表单提交也有问题,例如,当我点击搜索按钮时没有找到任何东西,因为使用占位符值进行搜索... :( 这样试试 -> jsfiddle.net/mNU4b @A1rPun 它工作,但我使用更新面板,这个提交导致回发,我不想要... 【参考方案1】:

点击按钮时,使用 jquery submit 而不是 javascript submit

$('#myForm').attr('action', 'value');

$("#myForm").submit(); 

【讨论】:

你是说断开按钮与表单的连接吗?【参考方案2】:

首先检测是哪个浏览器。是否支持占位符?

为此使用以下代码:

if (($.support.placeholder = (function () var i = document.createElement('input'); return 'placeholder' in i; )()) == false)

然后用

给那些输入框赋值
 $('selector').val('abc') 

希望..这对你有用。

【讨论】:

以上是关于jquery占位符表单在ie中提交的主要内容,如果未能解决你的问题,请参考以下文章

相当于 HTML 占位符的 Jquery

在 IE 中的占位符上触发 jQuery 输入事件

模型驱动表单 - IE11 上的输入占位符问题

旧浏览器的真正占位符文本修复?

使用 IE9、jquery 插件/html 验证的占位符问题

HTML 表单“占位符”在 IE 8 中不起作用