无法通过LiveValidation插件删除动态插入的元素

时间:2014-01-15 05:04:26

标签: javascript jquery forms submit livevalidation

我正在使用实时验证插件来验证我的表单。提交表单后,插件会在< 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> 

提前致谢。

2 个答案:

答案 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()

http://jsfiddle.net/4c8c4/

看到我的小提琴