Javascript 我可以同时使用onclick和onsubmit事件吗?

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

我正在做一个网站注册页面,我需要首先验证我的表格,然后如果表格是有效的,我需要运行一些功能

我不喜欢jquery。请用js建议答案。在过去,我尝试过这个函数,但只有onclic函数有效…当表单有效,我点击按钮时,什么都不会发生

<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')
}