IE9验证占位符问题,jquery plugin/html



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

有一个页面,用户可以选择一个用户名来提取或在文本字段中写入自定义用户名。这个插件在IE9上为这个输入文本添加了一个value属性来模拟占位符。一切都很好,但是。。

我收到了一个验证错误,就好像输入文本填充不正确,错误地填充了发送到表单的假占位符。如果在提交表单时使用IE9,我试图从输入中删除该属性,但删除属性或使用jquery触发重置都有效。我试了几件事,但没有成功。。

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

我试过这样的东西:

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');
    }
});

但它正在被发送并得到验证错误。。。

非常感谢!

由于默认情况下<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();
    }
});

相关内容

最新更新