如何用javascript从表单验证中排除一个按钮

How to exclude one button from form validation with javascript

本文关键字:按钮 一个 排除 javascript 何用 表单 验证      更新时间:2023-09-26

表单在提交时进行验证,如果ok,您可以添加新值,修改现有值或删除。但是,Delete会因验证而中断。第一部分验证检查是newName是否已经存在于readName选择中。第二部分是确保文本框不是空的。newName是根据readName的选择来填充的。在删除验证投诉,因为你提交了一个值,生活在下拉框。如何删除旁路验证?

<form action="lists" method="post" onsubmit="return validate(this)">
   <selects id="readName" name="readName" onchange="updateAction(this.form, 'read');this.form.submit()">                    
        <option  title="PETER" value="PETER">PETER</option>                           
        <option selected title="Will" value="Will">Will</option>
        <option  title="one" value="one">one</option>                        
   </select>
   <label class="padLeft15">Edit Name:</label>&nbsp;                              
   <input type="text" name="newName" id="newName" title="Will" value="Will" />
   <input class="marginRight10" id="new" type="submit" onclick="updateAction(this.form, 'new');" value="New" />
   <input class="marginRight10" id="save" type="submit" onclick="updateAction(this.form, 'save')" value="Save" />
   <input class="marginRight10" id="delete" type="submit" onclick="updateAction(this.form, 'delete')" value="Delete" />
</form>
<script>
function validate(form) {
var isValid = validateText(form.newName);
var exists= $("#readName option[value='"+ $("#newName").val()+"']").length > 0;
    if (exists) {
        document.getElementById("error").innerHTML = "WHOAA, already have this in the list!!";
        return false;
    }
    if (!isValid) {
        document.getElementById("error").innerHTML = "Name must not be empty";
        return false;
    }
    return isValid;
}
</script>

将删除按钮更改为按钮类型,使其不会提交。然后通过手动传递数据来覆盖单击操作。

<input class="marginRight10" id="delete" type="button" onclick="updateAction(this.form, 'delete')" value="Delete" />
$('body').on('click', '#delete', function () { 
     updateAction('#yourformid', 'delete')
});