所以这应该是非常直接的,我不知道为什么我遇到了问题
我在.jsp页面上创建了以下下拉列表
<form:select path="affProgramSessionList[${stIndx}].affidavitAttendeeTypeDetailDto.attendeeType" id="facultyAttendee_${session.id}" onchange="showFacultyInfo(this)">
<c:if test="${contains eq true}">
<c:if test="${facultyMember eq true}">
<form:option value="Attendee" label="Attendee" />
<form:option value="Faculty" label="Faculty" selected="selected" />
</c:if>
<c:if test="${facultyMember eq false}">
<form:option value="Attendee" label="Attendee" selected="selected"/>
<form:option value="Faculty" label="Faculty" />
</c:if>
</c:if>
<c:if test="${contains eq false}">
<form:option value="Attendee" label="Attendee" selected="selected" />
<form:option value="Faculty" label="Faculty" />
</c:if>
</form:select>
这表现得应该如此,并创建一个带有两个选项的下拉列表。
正如您可以从代码中看到的,取决于哪些条件为true / false将决定自动选择哪个值。
如果值为“Faculty”,则应显示一些隐藏字段。
您会注意到onchange()事件调用了一个函数。我将在下面向您展示该功能的代码。
在document.ready上运行以下代码
$("input[id*='facultyAttendee_']").each(function() {
if ($(this).val() === "Faculty" ) {
showFacultyInfo(this);
}
});
这称为手动更改下拉的功能与上面提到的相同
function showFacultyInfo(elt){
var dataid = elt.id.split('_')[1];
if(elt.value==='Faculty') {
$('#' + "facultyDetail_" + dataid).show();
$('#' + 'fullAttendenceNY_' + dataid ).val("Yes");
$('#' + 'fullAttendenceNY_' + dataid ).prop('disabled', true);
$('#' + 'partialAtt_' + dataid).hide();
}
else {
$('#' + "facultyDetail_" + dataid).hide();
$('#' + 'fullAttendenceNY_' + dataid ).prop('disabled', false);
}
}
此代码适用于手动下拉列表更改,但如果下拉列表中的值已经是教师,则似乎不会像在document.load上那样调用它。
任何帮助弄清楚为什么是赞赏它。
谢谢
试试这个。它更简单
我不得不改变输入[选择[
$(function() {
$("select[id^='facultyAttendee_']").on("change", function() {
var show = $(this).val() === "Faculty",
dataid = this.id.split("_")[1];
$("#partialAtt_" + dataid).toggle(!show);
$("#facultyDetail_" + dataid).toggle(show);
$("#fullAttendenceNY_" + dataid).val(show?"Yes":"No");
$("#fullAttendenceNY_" + dataid).prop('disabled', show);
}).change();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Attendee: <select id="facultyAttendee_xxx">
<option value="Attendee">Attendee</option>
<option value="Faculty" selected="selected" >Faculty</option>
</select><br/> fullAttendenceNY:
<select id="fullAttendenceNY_xxx">
<option value="Yes">Yes</option>
<option value="No">No</option>
</select>
<div id="facultyDetail_xxx">facultyDetail</div><br/>
<div id="partialAtt_xxx">partialAtt</div>