2つのjavascriptを組み合わせたい
フォームメール用の2つのjavascriptがあります。
●2重送信防止とデータ送信後指定ページへ遷移するjavascript
●テキストボックスが空欄だった時にアラートを表示するjavascript
の2つです。
この2つを組み合わせようとしたのですが、うまく動きません。
ご指導いただきたくお願いいたします。
***************************************************
【●2重送信防止とデータ送信後指定ページへ遷移するjavascript】【動きます】
送信ボタン押下後、2重送信を防止しながら、データ送信後は「location.href = "finish.html"」でfinish.htmlを表示します。
<script type="text/javascript" src="js/jquery.js"></script>
<script>
jQuery(function($) {
$('#form1').submit(function(event) {
// HTML送信キャンセル
event.preventDefault();
//フォーム要素取得
var $form = $(this);
// 送信ボタンを取得
// (後で使う: 二重送信防止)
var $button = $form.find('button');
// 送信
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize()
+ '&delay=1',
timeout: 10000,
// 送信前
beforeSend: function(xhr, settings) {
// ボタン無効二重送信防止
$button.attr('disabled', true);
},
// 応答後
complete: function(xhr, textStatus) {
// ボタン有効再送信許可
$button.attr('disabled', false);
},
// 通信成功処理
success: function(result, textStatus, xhr) {
// 入力値初期化
$form[0].reset();
location.href = "finish.html";
},
// 通信失敗処理
error: function(xhr, textStatus, error) {
alert('retry');}
});
});
});
</script>
<form name="form1" id="form1" method="POST" name="form1" action="insert.php">
<input type="text" name="tel" value="" />
<input type="text" name="fax" value="" />
<input type="submit" value="送信A">
</form>
***************************************************
【●テキストボックスが空欄だった時にアラートを表示するjavascript】【動きます】
テキストボックスが空欄だったらアラートを表示します。
<script>
function check3() {
var tel3 = document.form1.tel.value;
var fax3 = document.form1.fax.value;
var isValid = true;
if (!tel3) {
alert("電話未入力");
isValid = false;
}
if (!fax3) {
alert("FAX未入力");
isValid = false;
}
if (!isValid) {
return;
}
document.form1.submit();
}
</script>
<form name="form1" id="form1" method="POST" name="form1" action="insert.php">
<input type="text" name="tel" value="" />
<input type="text" name="fax" value="" />
<input type="submit" value="送信B" onclick="check3();">
</form>
***************************************************
【上記の2つを組み合わせてみました。】【動きません】
テキストボックスが空欄だったらアラートを表示しながら2重ボタン排除&finish.htmlに遷移というものです。
【結果】
「問題なく動くjavascript」2つを単純に組み合わせただけなのですが、
finish.htmlに遷移せずinsert.phpが表示されます。ご指導宜しくお願いします。
<script type="text/javascript" src="js/jquery.js"></script>
<script>
jQuery(function($) {
$('#form1').submit(function(event) {
event.preventDefault();
var $form = $(this);
var $button = $form.find('button');
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize()
+ '&delay=1',
timeout: 10000,
beforeSend: function(xhr, settings) {
$button.attr('disabled', true);
},
complete: function(xhr, textStatus) {
$button.attr('disabled', false);
},
success: function(result, textStatus, xhr) {
$form[0].reset();
location.href = "finish.html";
},
error: function(xhr, textStatus, error) {
alert('retry');}
});
});
});
</script>
<script>
function check3() {
var tel3 = document.form1.tel.value;
var fax3 = document.form1.fax.value;
var isValid = true;
if (!tel3) {
alert("電話未入力");
isValid = false;
}
if (!fax3) {
alert("FAX未入力");
isValid = false;
}
if (!isValid) {
return;
}
document.form1.submit();
}
</script>
<form name="form1" id="form1" method="POST" name="form1" action="insert.php">
<input type="text" name="tel" value="" />
<input type="text" name="fax" value="" />
<input type="submit" value="送信B" onclick="check3();">
</form>
お礼
ありがとうございます。 下記で出来ました。 本当にありがとうございました。感謝します。 <script type='text/javascript'> $(document).ready(function(){ $("#search_results").slideUp(); $("#search_button").click(function(e){ e.preventDefault(); ajax_search(); }); $("#search_term").keyup(function(e){ e.preventDefault(); ajax_search(); }); }); function ajax_search(){ $("#search_results").show(); var search_val=$("#search_term").val(); $.post("./find.php", {search_term : search_val}, function(data){ if (data.length>0){ $("#search_results").html(data); } }) $("#search_results_op").slideUp(); $("#search_button_op").click(function(e){ e.preventDefault(); ajax_search2(); }); $("#search_term_op").keyup(function(e){ e.preventDefault(); ajax_search2(); }); }); function ajax_search2(){ $("#search_results_op").show(); var search_val=$("#search_term_op").val(); $.post("./find_callput_op.php", {search_term_op : search_val}, function(data2){ if (data2.length>0){ $("#search_results_op").html(data2); } }) } </script>