私はチェックボックス付きのモーダルを持っています。私は、サイト上の2つの異なる場所に情報をプルする2つのボタンのためにそれを再利用しようとしています。モーダルを別のボタンで再利用して、フォームのダブル送信を防止するにはどうすればよいですか?
問題はJQueryの問題です。物事は提出されますが、私がButton A
を押すと、すべて正常に動作します。この後にButton B
を押すと、Button A
が再送信され、Button B
も送信されます。これは逆の順序でボタンを操作する場合にも発生します。
フォームとなるメインページがあります。このモーダルは、ボタンAを含むフォームをポップアップします。ポリシーを選択してから、「submit」をクリックします。これにより、メインフォームに追加されます。ボタンBでポリシーを選択すると、ポリシーファイルが追加されます。同様ですが少し異なりますが、どちらも同じモーダルを使用します
これを押すとモーダルがポップアップします。
<a href="#" data-mylink="1" role='button' class="btn btn-default" data-toggle='modal' data-target='#policyattach_instructions1'>Button A</a>
<a href="#" data-mylink="2" class="btn btn-default" data-toggle="modal" data-target="#policyattach_instructions1">Button B</a>
モーダルのボタンを送信します。チェックボックスがボタンのクリックでチェックされ、JQueryの途中で取得されないかどうかをチェックします。
<input type="button" name="action" class="btn btn-success ajaxifypolicies2" value="Add Policy" onClick="if(radio_checkbox_validate(document.add_policies_form,'one or more Policies & Procedures.')) { return true; } else { return false; }" />
jQueryのは:
$('#policyattach_instructions1').on('shown.bs.modal', function (e) {
$('#add_policies_display').html("<center style='margin-top: 25px;'>Use the search tools above to find Policies & Procedures.</center>");
var btn = $(e.relatedTarget);
var pnpid = btn.data('mylink');
//alert(pnpid);
if(pnpid==1){
$(".ajaxifypolicies2").click(function(){
alert("test98");
$('[id^="add_policies_checkbox"]').each(function(i, v){
if($(v).prop('checked')){
var data=$(v).val();
//alert(data);
$("#linked_pnp_instructions").append("<div id='pnpID_instruction"+data+"1'><h6><input type=hidden name=pnpID_instructions value=\'"+data+"\' />P&P #'s: "+data+" <a href='#' class='clear_pnp' id='pnpID_instruction"+data+"'>Clear</a></h6></div>");
//$("#policyattach_instructions1").removeData('bs.modal');
}
});/**/
$(".clear_pnp").click(function(){
var ID=this.id;
//alert(ID+"1");
$("#"+ID+"1").remove();
return false;
});
$("#policyattach_instructions1").modal('hide');
});//end ajaxifypolicies/**/
}
else
{
$(".ajaxifypolicies2").click(function(){
alert("test99");
$('[id^="add_policies_checkbox"]').each(function(i, v){
if($(v).prop('checked')){
var data=$(v).val();
//alert(data);
$("#linked_pnp").append("<div id='pnpIDs"+data+"1'><h6><input type=hidden name=pnpIDs value=\'"+data+"\' />P&P #'s: "+data+" <a href=# class=clear_pnp id='pnpIDs"+data+"' >Clear</a></h6></div>");
//$("#policyattach_instructions1").removeData('bs.modal');
// $("#policyattach_instructions1").modal('hide');
}
});/**/
$(".clear_pnp").click(function(){
var ID=this.id;
//alert(ID+"1");
$("#"+ID+"1").remove();
return false;
});
$("#policyattach_instructions1").modal('hide');
});//end ajaxifypolicies/**/
}
return false;/**/
});//end modal
$('#policyattach_instructions1').on('hidden.bs.modal', function (e) {
alert("asfdasf");
$(this).removeData('bs.modal');
});
は、私も試してみて、二回ajaxifypolicies2使用を避けるために、これを試してみました:
$(".ajaxifypolicies2").click(function(){
if(pnpid==1){
alert("test98");
$('[id^="add_policies_checkbox"]').each(function(i, v){
if($(v).prop('checked')){
var data=$(v).val();
//alert(data);
$("#linked_pnp_instructions").append("<div id='pnpID_instruction"+data+"1'><h6><input type=hidden name=pnpID_instructions value=\'"+data+"\' />P&P #'s: "+data+" <a href='#' class='clear_pnp' id='pnpID_instruction"+data+"'>Clear</a></h6></div>");
//$("#policyattach_instructions1").removeData('bs.modal');
}
});/**/
}
else
{
alert("test99");
$('[id^="add_policies_checkbox"]').each(function(i, v){
if($(v).prop('checked')){
var data=$(v).val();
//alert(data);
$("#linked_pnp").append("<div id='pnpIDs"+data+"1'><h6><input type=hidden name=pnpIDs value=\'"+data+"\' />P&P #'s: "+data+" <a href=# class=clear_pnp id='pnpIDs"+data+"' >Clear</a></h6></div>");
//$("#policyattach_instructions1").removeData('bs.modal');
// $("#policyattach_instructions1").modal('hide');
}
});/**/
}
$(".clear_pnp").click(function(){
var ID=this.id;
//alert(ID+"1");
$("#"+ID+"1").remove();
return false;
});
$("#policyattach_instructions1").modal('hide');
});//end ajaxifypolicies/**/
return false;/**/
});//end modal
ここでは正確に何をしようとしていますか?あなたの投稿を理解できないようです。 – omoabobade
私たちはフォームであるメインページを持っています。このモーダルは、ボタンAを含むフォームをポップアップします。ポリシーを選択してから、「submit」をクリックします。これにより、メインフォームに追加されます。ボタンBでポリシーを選択すると、ポリシーファイルが追加されます。同様ですが少し異なりますが、どちらも同じモーダルを使用しています。これを質問に更新します。 –
これを簡略化してプランナーやフィドルに入れる機会はありますか?問題を簡単に解決するのに役立ちます。 –