我正在使用实时验证插件来验证我的表单。提交表单后,插件会在< input>之后添加这行代码:
<span class=" LV_validation_message LV_valid">Ok</span>
这一切都很好,但是当我提交表单时,我想为下一个用户重置表单。这是我的代码:
$('#myForm').on('submit',function(e){
e.preventDefault();
var inputsValid = email.form.onsubmit();//apparently this checks that all fields are valid: name, phone, email
if(inputsValid){
$(this).remove('.LV_validation_message');
//do stuff like send data to backend here...
hideMyForm();
}
});
如您所见,一旦我确认字段正常,我将尝试通过删除具有类“LV_validation_message”的元素来删除已验证的消息。之后,我会隐藏表格。下一次用户访问该页面时,我将再次显示该表单 - 只有$(this).remove('.LV_validation_message')
行不起作用,并且第二个用户看到表单中粘贴的验证消息,即使输入字段被重置并为空。
我从$('#myForm').submit
开始,但将其更改为$('#myForm').on('submit')
,因为我知道<span class=" LV_validation_message LV_valid">Ok</span>
是动态添加的。我尝试使用$(this).remove('.LV_validation_message')
,$('.LV_validation_message'.remove()
甚至$('.LV_validation_message'.html("")
- 使用LV_validation_message类更改元素,但无济于事。这些元素似乎完全不受jQuery的控制。
有人可以向我提供一些提示或想法,为什么我根本无法删除这些元素?这是有问题的表格,以防万一:
<form id="myForm" autocomplete="off" class="tcenter">
<label name="name">Name</label>
<input id="name" type="text" value="" autocomplete="off"><div class="LV-arrow-left-red"> </div><div class="LV-arrow-left-green"></div><br>
<label name="phone">Phone</label>
<input id="phone" type="text" value="" autocomplete="off"><div class="LV-arrow-left-red"></div><div class="LV-arrow-left-green"></div><br>
<label name="email">Email</label>
<input id="email" type="text" value="" autocomplete="off"><div class="LV-arrow-left-red"></div><div class="LV-arrow-left-green"></div><br>
<label><!-- Empty tag; to maintain layout --></label>
<input class="ui-keyboard-button" type="image" width="297" height="64" alt="Submit">
</form>
提前致谢。
答案 0 :(得分:0)
尝试$('.LV_validation_message').val("")
或错误可能是输入标签关闭不当,应该是
<input id="name" type="text" value="" autocomplete="off"><div class="LV-arrow-left-red"> </div><div class="LV-arrow-left-green"></div></input>
答案 1 :(得分:0)
这似乎有效$('.LV_validation_message').remove()