首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >合并onsubmit脚本

合并onsubmit脚本
EN

Stack Overflow用户
提问于 2021-02-18 20:42:04
回答 1查看 23关注 0票数 0

我有一个表单,其中有两个脚本在提交时运行;一个用于在单击一次后禁用提交按钮,另一个用于将英国国家代码添加到phoneNumber字段。我一次只能让它们中的一个运行,如何才能让它们都运行呢?

代码语言:javascript
复制
  <form action="https://123.com" method="post" onsubmit="return checkForm(this);"> 
   <input name="PhoneNumber" type="tel" required="">
   <input name="myButton" type="submit" value="Submit">
   </form>

代码语言:javascript
复制
 <script type="text/javascript">
  function checkForm(form)
  {
    //
    // validate form fields
    //

    form.myButton.disabled = true;
    return true;
  }
</script> 
  <script>
function checkForm(f) {
  const phoneNumberField = f.querySelector("[name='PhoneNumber']");
  if(phoneNumberField.value.startsWith("0")){
    phoneNumberField.value = "44" + phoneNumberField.value.substring(1);
  }
   return true; // Just for demo to stop the form submitting
}
  </script> 

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-18 20:48:43

不要使用onclick属性。请改用Element.addEventListener()

代码语言:javascript
复制
document.getElementById('my-form').addEventListener('submit', checkForm)

function checkForm1(form) {
  form.myButton.disabled = true;
}
function checkForm2(f) {
  const phoneNumberField = f.querySelector("[name='PhoneNumber']");
  if (phoneNumberField.value.startsWith("0")) {
    phoneNumberField.value = "44" + phoneNumberField.value.substring(1);
  }
}
function checkForm(e) {
  checkForm1(e.target)
  checkForm2(e.target)
  // This stops the form from submitting
  e.preventDefault()
  e.stopPropagation()
  return false;
}
代码语言:javascript
复制
<form id="my-form" action="https://123.com" method="post">
  <input name="PhoneNumber" type="tel" required="">
  <input name="myButton" type="submit" value="Submit">
</form>

代码语言:javascript
复制
document.getElementById('my-form').addEventListener('submit', checkForm1)
document.getElementById('my-form').addEventListener('submit', checkForm2)
document.getElementById('my-form').addEventListener('submit', cancel)

function checkForm1(e) {
  e.target.myButton.disabled = true;
}

function checkForm2(e) {
  const phoneNumberField = e.target.querySelector("[name='PhoneNumber']");
  if (phoneNumberField.value.startsWith("0")) {
    phoneNumberField.value = "44" + phoneNumberField.value.substring(1);
  }
}

function cancel(e) {
  // This stops the form from submitting
  e.preventDefault();
  e.stopPropagation();
  return false;
}
代码语言:javascript
复制
<form id="my-form" action="https://123.com" method="post">
  <input name="PhoneNumber" type="tel" required="">
  <input name="myButton" type="submit" value="Submit">
</form>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66260184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档