各フォーム内の特定の入力値から動的アラートを作成したいと考えています。ページに多くのフォームがあります。各アラートはわずかに異なる必要があります。カスタム メッセージを生成するために、2 つのフォーム入力値を使用しています。<input type="hidden" name="on0" value="Size">
& <input type="hidden" name="on1" value="Color">
. ページの最初のフォームでアラートが機能していますが、2 番目のフォームの後、アラートがそのフォームの選択された入力値と一致しません。ユーザーが操作するフォーム内でこれらの入力値の特定のインスタンスをターゲットにするにはどうすればよいですか?
これは、2 つの形式のみを示すコードの簡略化されたバージョンです 。
<form method="post" class="list1">
<input type="hidden" name="on0" value="Size">
<select name="os0">
<option value="">-- Choose a Size --</option>
<option value="Short">Short</option>
<option value=" Medium">Medium</option>
<option value=" Long">Long</option>
</select>
<input type="hidden" name="on1" value="Color">
<select name="os1">
<option value="">
-- Choose a Color --
</option>
<option value="ivory">ivory</option> <option value=" black"> black</option>
</select>
<input type="button" value="Add to Cart" class="catalog">
</form>
<!-- seconed form start -->
<hr />
<form method="post" class="list2">
<input type="hidden" name="on0" value="Option">
<select name="os0">
<option value="">-- Choose a Option --</option>
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
<option value="Option 3">Option 3</option>
</select>
<input type="hidden" name="on1" value="Accent Color">
<select name="os1">
<option value="">
-- Choose a Choose a Accent Color --
</option>
<option value="red">Red</option>
<option value="yellow">yellow</option>
<option value="orange">orange</option>
</select>
<input type="button" value="Add to Cart" class="catalog">
</form>
そして私のjs
$(document).ready(function(){
var size_x = $("input[name='on0']").val();
var color_x = $("input[name='on1']").val();
function popWarning() {
if ($("select[name='os0']").val() === "") {
alert('Please choose a ' + size_x);
return false;
}
if ($("select[name='os1']").val() === "") {
alert('Please choose a ' + color_x);
return false;
}
}
$("input.catalog").click(function() {
popWarning();
});
});