【发布时间】:2017-01-02 19:42:16
【问题描述】:
我试图在弹出的表单上设置一个取消按钮,但是当点击取消按钮时表单被提交。
我该如何:从元素中移除验证,解除绑定监听器,或者为我的表单设置一个特定的提交事件,这样当点击取消按钮时它就不会提交?
感谢您的帮助
var form = document.createElement('form')
form.className = 'feedback_form corner_style'
form.remove = function() {this.parentElement.removeChild(this)}
var label = document.createElement('label')
label.innerHTML = 'Why did this not satisfy your need?'
form.appendChild(label)
form.appendChild(document.createElement('br'))
var textarea = document.createElement('textarea')
textarea.rows = 10
textarea.cols = 50
textarea.name = 'feedback'
form.appendChild(textarea)
form.appendChild(document.createElement('br'))
var submit = document.createElement('input')
submit.innerHTML = 'Submit'
submit.name = 'submit'
submit.type = 'submit'
form.appendChild(submit)
var cancel = document.createElement('button')
cancel.innerHTML = 'Cancel'
cancel.addEventListener('click', () => {
console.log('remove form')
form.preventDefault()
console.log('check 1 ')
form.remove()
})
form.appendChild(cancel)
document.body.appendChild(form)
$(form).validate({
debug: true,
rules: {
feedback: 'required'
},
submitHandler: () => {
console.log('submit not_satisfied')
$.ajax({
url: '/not_satisfied',
cache: false,
data: {
id: JSON.parse(row.dataset.extra_columns).id,
feedback: 'NotImplimented'
},
error: (jqXHR, textStatus, errorThrown) => {
console.log(String(jqXHR))
console.log(String(textStatus))
console.log(String(errorThrown))
alert('Error processing request.')
},
success: data => {
if (! data) alert('Could not complete request.')
},
complete: () => {document.dispatchEvent(new Event('only_nest_form_Submit_Complete'))}
})
form.remove()
}
})
【问题讨论】:
标签: javascript forms jquery-validate