我有一个页面,其中有几个使用while循环创建的表单,每个表单有四个选择。我试图找出如何检查属于当前表单的每个选项(包含单击按钮的选项)以确认是否已选择任何选项。所有表单都包含在一个名为#audit_content
的div中。
目的是检查变量grade
是否不是某个值,然后脚本检查是否已选择任何选择。
(值$i
在while循环期间创建,用于唯一标识每个表单)
html
<form id="audit_form<? echo $i; ?>">
<select name="grade" class="grade<? echo $i; ?>">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<select>
<select name="patient" class="reason_select">
<option value="">Select</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select name="exposure" class="reason_select">
<option value="">Select</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select name="equipment" class="reason_select">
<option value="">Select</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select name="positioning" class="reason_select">
<option value="">Select</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="button" name="audit_submit" class="audit_submit audit_submit_btn ie7_submit" value="" />
<input type="hidden" class="form_id" value="<? echo $i; ?>" >
</form>
JQuery
<script>
$(document).ready(function(){
$('#audit_content').on("click", ".audit_submit", function(){
var form_id = $(this).prev('.form_id').val();
var grade = $('.grade'+form_id).val();
if(grade != 1){
$('select.reason_select').each(function(){
alert($(this).text())
}
});
</script>
脚本显示页面上reason_select
类的每个选择的值,我意识到这是因为我没有告诉它检查一个特定的表单,这就是我被困在的位置
答案 0 :(得分:1)
我会将脚本更改为
<script>
$(document).ready(function () {
$('#audit_content').on("click", ".audit_submit", function () {
var form = $(this).prev('form');
var grade = $('select[name="grade"]', form).val();
if (grade != '1') {
$('select.reason_select', form ).each(function () {
alert($(this).text());
});
}
});
});
</script>
在您发布的脚本中,有几个缺少)
和}
,因此它应该会产生语法错误。
你提到
当前表单(包含单击按钮的表单)
但您的按钮未包含在表单中,这就是我将代码更改为form = $(this).prev('form')
答案 1 :(得分:1)
按钮位于表格之外,而不是如上所述。
要隔离任何重复类型窗口小部件,请查找该窗口小部件的父窗口,然后仅在其中搜索: 移动表单内的按钮可以很容易地执行:
$('#audit_content').on("click", ".audit_submit", function () {
var form=$(this).closest('form')
var selects=form.find('select');
// do somthing with selects
})