我正在使用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');
}
});
但它正在发送并获得验证错误...
非常感谢!
答案 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();
}
});