试图检查负载下拉值并且它不起作用。

问题描述 投票:0回答:1

所以这应该是非常直接的,我不知道为什么我遇到了问题

我在.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上那样调用它。

任何帮助弄清楚为什么是赞赏它。

谢谢

javascript jquery html drop-down-menu
1个回答
1
投票

试试这个。它更简单

我不得不改变输入[选择[

$(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>
© www.soinside.com 2019 - 2024. All rights reserved.