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

时间:2015-11-26 09:37:11

标签: jquery forms validation internet-explorer placeholder

我正在使用jquery插件在IE9上输入文本占位符,这给了我一个问题。

有一个页面,用户可以选择一个用户名捡起它或在文本字段中编写自定义用户名。此插件在IE9上为此输入文本添加值属性以模拟占位符。一切都很好,但是..

我收到验证错误,好像输入的文本填充不正确,错误地填充了伪造的占位符,并将其发送到表单。我正在尝试从输入中删除该属性,如果在提交表单时使用IE9但是删除属性或触发jquery重置是有效的。我尝试了一些东西,但没有运气..

如果value属性等于占位符的内容(在这种情况下为'Type Username'),我想清除或删除发送到表单的值,是否可以重置或删除值在发送之前来自提交事件的输入?

我尝试过这样的事情:

jQuery('button[type=submit]').on('click', function() {

    if (jQuery('#customUsername').val().indexOf('Type Username') >= 0 ) {
        jQuery('#customUsername').trigger('reset');
        jQuery('#customUsername').removeAttr('value');
        jQuery('#customUsername').removeAttr('placeholder');
    }

});

但它正在发送并获得验证错误...

非常感谢!

1 个答案:

答案 0 :(得分:1)

由于<button type="submit">默认情况下会提交表单,因此您应首先删除event.preventDefault()的默认行为,然后执行所需的操作。最后,您可以通过.submit()函数提交表单。示例代码如下:

$('button[type=submit]').click(function( event ) {
  event.preventDefault();
  if ($('#customUsername').val().indexOf('Type Username') >= 0 ) {
        $('#customUsername').trigger('reset');
        $('#customUsername').removeAttr('value');
        $('#customUsername').removeAttr('placeholder');
        $('#frm').submit();
    }
});