我正在使用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>
答案 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}}
对于您的回答,一种方法是在实际提交表单之前执行检查。检查是否填写了必填字段,如果是,请继续并提交表单,否则请不要提交并显示错误消息。