如何制作第一对领域和其他领域不是?

时间:2016-08-25 06:12:24

标签: javascript jquery ajax forms

我正在使用Ajax连续提交表单。我试图使第一个s_referee_email + s_referee_fname对需要,而第二个或其他不需要 - 这些对中最多有五个。我似乎无法想象如何在不破坏表格的情况下制作第一对所需的东西。我已经尝试过使用HTML5和堆栈的一些答案,但还没有能够得到任何工作。非常感谢任何建议!

小提琴:https://jsfiddle.net/badsmell/gcrvqbna/

<html>
 <head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <!--serial submit ajax-->
  <script>
     function mySubmit(){
     var myForms = $("form");
     myForms.each(function(index) {
     var form = myForms.eq(index);
     var serializedForm = form.serialize();
     serializedForm += '&s_referer_fname='+$('#s_refererFname').val();
     $.post("http://post.aspx", serializedForm, function (data, status) {
     if (status === "success"){
     window.location.href= "http://redirect";
     }  
     });   
     });
     }
  </script>
  <title>Forward a copy to a friend</title>
  <style type="text/css">
     *[class=hide] {
     display: none
     }      
  </style>
  </head>
  <body>
  <!--hidden iframe-->
  <iframe class="hide" id="myIframe"></iframe>
  <form method="post" action="post.aspx" target="myIFrame"> 
     <input type="hidden" name="s_referer_email" value="test@test.com" />
     <input type="text" size="30" maxlength="255" name="s_referee_email" value="" required  >
     <input type="text" size="22" maxlength="50" name="s_referee_fname" value="" required  >
  </form>
  <form method="post" action="post.aspx" target="myIFrame">
     <input type="hidden" name="s_referer_email" value="test@test.com" />
     <input type="text" size="30" maxlength="255" name="s_referee_email" value="" >
     <input type="text" size="22" maxlength="50" name="s_referee_fname" value="" >
  </form>
  <label for="s_referer_fname">Your name:</label> <br /> <input type="text" name="s_referer_fname" value="" size="20" id="s_refererFname" ><br> 
  <p><button onclick="mySubmit();">Submit</button> </p>
 </body>
</html>

2 个答案:

答案 0 :(得分:0)

添加required =&#34; required&#34;标签可以让任何字段必须由用户填写。

答案 1 :(得分:0)

您不应该使用 .onclick()或用户脚本中的类似属性。

用户脚本在沙箱中运行,onclick在目标页面范围内运行,无法看到脚本创建的任何函数。

始终使用 addEventListener()(或等效的库函数,如jQuery .on())。

所以代替代码:

something.outerHTML += '<input id="button_id" ...>'

document.getElementById ("button_id").addEventListener ("click", func, false);

你会使用:

{{1}}

对于您的回答,一种方法是在实际提交表单之前执行检查。检查是否填写了必填字段,如果是,请继续并提交表单,否则请不要提交并显示错误消息。