Javascript 我可以同时使用onclick和onsubmit事件吗?
我正在做一个网站注册页面,我需要首先验证我的表格,然后如果表格是有效的,我需要运行一些功能 我不喜欢jquery。请用js建议答案。在过去,我尝试过这个函数,但只有onclic函数有效…当表单有效,我点击按钮时,什么都不会发生Javascript 我可以同时使用onclick和onsubmit事件吗?,javascript,html,validation,Javascript,Html,Validation,我正在做一个网站注册页面,我需要首先验证我的表格,然后如果表格是有效的,我需要运行一些功能 我不喜欢jquery。请用js建议答案。在过去,我尝试过这个函数,但只有onclic函数有效…当表单有效,我点击按钮时,什么都不会发生 <form onsubmit=" // function to take place on submit "> // This // function should take place if form has been validated by aler
<form onsubmit=" // function to take place on submit "> // This
// function should take place if form has been validated by alerts as // well
<input required>
<input required>
<button type="submit" onclick="fn(); fn2(); fn3()" // I need to use onclick here as // these functions are validations using javascript alert
</form>
//这个
//如果表单也已通过警报验证,则应执行此功能
是的,您可以在submit按钮上单击onSubmit和onClick。下面的示例将生成两个警报框。但是,如果将按钮设为type=“button”,并在onClick函数中添加form.submit()以实际提交表单,则不会触发onSubmit。它仅由type=“submit”按钮触发。为了避免这种情况,在手动提交表单之前,只需直接从onClick函数中调用onSubmit函数
<form onsubmit="myFunction()">
Enter name: <input type="text" name="fname">
<input type="submit" value="Submit" onClick="mySubmit(this.form)">
</form>
<script>
function myFunction() {
alert("The form was submitted");
}
function mySubmit(theForm) {
alert("My Submit");
}
</script>
输入名称:
函数myFunction(){
警告(“表格已提交”);
}
函数mySubmit(表单){
警惕(“我的提交”);
}
提交按钮单击和表单提交不需要使用单独的功能,它们基本相同,因为您将提交设置为按钮类型
你只能用一个(最好是练习)
您可以选择其中任何一个,但我建议您$form.submit
你可以这样写
$yourFormVar.onsubmit = function(e){
e.preventDeault();
if($firstInput.value !== '1' || '2' /*... I am not very good at RegExp so you can use it*/){
return alert('input value must be number greater than 1 and less then 10');
}
//other validations (with return statement);
//now you can send variables to server;
//i do not know technology you are using and i will use axios in this example;
axios.post('/route', {
data: $yourFormVar.serialize()
})
.then(res => {
alert(res.data)
})
}
欢迎Buckyball,如果我很了解你,你需要一些验证,然后提交你的数据
A)如果在使用min
和max
时遇到问题,可以尝试使用正则表达式的模式
<form>
<input pattern="\b([1-9]|10)\b" title="Number between 1 and 10" required>
<button>Submit</button>
</form>
C)如果要使用onclick
和onsubmit
事件
document.querySelector('form').onsubmit = e => {
alert('submit')
e.preventDefault() // don't forget to remove this line
}
document.querySelector('button').onclick = e => {
alert('button')
}
希望这些帮助或至少为您指明正确的方向:)对于数字验证,您可以使用输入类型number和minmax。对于特定类型的验证,您可以使用Ajax。当你们点击按钮时,你们会进行验证,若正确,你们会在js中提出提交请求。谢谢D先生,但我尝试了min和max,但它不能正常工作,正如我所说,我只想使用js进行验证。无论如何,谢谢。我会尝试其他建议。请在这里的my function()中提供帮助
我需要隐藏整个表单并显示一条祝贺消息,然后单击以提醒验证我可以使用什么来代替Axios?实际上我不知道jquery,$yourFormVar
是一个实际名称还是您想让我给它一个名称?这只是一个测试名称,您可以自己给它命名(顺便说一句,它不是jquery选择器,您可以用美元符号开始变量名)我如何将表单声明为变量var form=?
我可以用什么来代替axios?
const $input = document.querySelector('input')
document.querySelector('form').onsubmit = e => {
// You can add as many validations as you want
if (!/\b([1-9]|10)\b/.test($input.value)) {
alert('Number has to be between 1 and 10')
e.preventDefault() // aborting
} else {
alert('ok') // after this the data will be submitted
e.preventDefault() // don't forget to remove this line
}
}
document.querySelector('form').onsubmit = e => {
alert('submit')
e.preventDefault() // don't forget to remove this line
}
document.querySelector('button').onclick = e => {
alert('button')
}