设置选定值时,jQuery下拉列表会发生冲突

时间:2015-04-04 23:20:27

标签: jquery asp.net updatepanel html-select

我的aspx网页上有一个html Select和一个隐藏的Asp.Net Label控件:

<select id="txtSubSector" name="txtSubSector"></select>
<asp:Label ID="lblSubSector" ClientIDMode="Static" runat="server" style="display:none" ></asp:Label>

我的jquery函数填充了select控件。现在我尝试用jquery设置它的选择值:

var subs = $('#lblSubSector').text();
$('#txtSubSector').val(subs);

然后,不会更改选择的选定值。但是当我在最后一个代码之前只添加alert()函数时,没有任何冲突,它可以成功运行。像这样:

var subs = $('#lblSubSector').text();
alert(subs);
$('#txtSubSector').val(subs);

有谁能说我如何设置没有警报功能的值?

注意:select和asp:Label控件都在UpdatePanel控件中。我在jQuery pageLoad()函数中编写了我的jquery函数,以防止jquery与UpdatePanel冲突。我的所有其他功能在这里成功运作。

更新

我的aspx文件在这里:

<%@ Page EnableEventValidation="true" Title="" Language="C#" MasterPageFile="~/mpClient.master"  AutoEventWireup="true" CodeFile="editjob.aspx.cs" Inherits="editjob" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <script type="text/javascript" src="style/jquery-1.11.2.min.js"></script>

    <link rel="stylesheet" type="text/css" href="style/style.css" />
    <link rel="stylesheet" type="text/css" href="cp/style/style-cp.css" />

    <link rel="stylesheet" href="style/jquery-ui-1.11.4.custom/jquery-ui.css" />
    <link rel="stylesheet" href="style/jquery-ui-1.11.4.custom/jquery-ui-timepicker-addon.css" />
    <script src="style/jquery-ui-1.11.4.custom/jquery-ui.js"></script>
    <script src="style/jquery-ui-1.11.4.custom/jquery-ui-timepicker-addon.js"></script>
    <script type="text/javascript">
        jQuery("document").ready(function ($) {
            $('.blockGroup input, select').change(function () {
                $(this).removeClass('make-ann-input-highlight');
                $('.lblValidation').hide(200);
            });
            $('#txtPostedDate').click(function () {
                return false;
            });
        });
        function fillSubSectors() {
            $('#txtSubSector').empty();
            var typeid = $('#txtSector').val();
            getSubSectors(typeid);
        };
        function getSubSectors(typeid) {
            $.ajax({
                type: 'POST',
                url: 'editjob.aspx/getSubSectors',
                data: '{ "typeid" : "' + typeid + '" }',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                success: function (result) {
                    for (var i = 0; i < result.d.length; i = i + 2) {
                        var newOption = "<option value=" + result.d[i] + ">" + result.d[i + 1] + "</option>";
                        $("#txtSubSector").append(newOption);
                    }
                },
                error: function () {
                    $('#lblStatus').html('Məlumat sorğusunda problem yarandı..');
                }
            });
        };
        // bu pageLoad funksiyasi icine yazanda UpdatePanel icinde olanlar isleyir 
        function pageLoad() {

            $('#txtSector').change(function () {
                fillSubSectors();
            });
            $('#txtSector').ready(function () {
                fillSubSectors();
            });
            //$('#txtSubSector').ready(function () {

            //});
            $.when(fillSubSectors).done(function () {
                var subs = $('#lblSubSector').text();
                $('#txtSubSector').val(subs);
            });
        };

        function scrollMove(id) {
            $(id).removeClass('make-ann-input').addClass('make-ann-input-highlight');
            $('.lblValidation').show(200);
            $('html, body').animate({ scrollTop: $(id).offset().top - 150 }, 700);
        };
        function showTrueMessage() {
            setTimeout(function () { $('#jobAdded').fadeIn(1500); setTimeout(function () { $('#jobAdded').fadeOut(1500); }, 3500); }, 0);
        };
        function showFalseMessage() {
            setTimeout(function () { $('#msgError').fadeIn(1500); setTimeout(function () { $('#msgError').fadeOut(1500); }, 3500); }, 0);
        };
        function showPicErrorMessage() {
            setTimeout(function () { $('#msgPicError').fadeIn(1500); setTimeout(function () { $('#msgPicError').fadeOut(1500); }, 3500); }, 0);
        };
        function clearInputs() {
            $("#panel1 :input").val('');
            $("#panel2 :input").val('');
            $(".container").find("select").prop('selectedIndex', 0);
        };
        $(function () {
            $("#txtPostedDate, #txtLastApplyDate").datetimepicker({
                showButtonPanel: true,
                dateFormat: 'dd/mm/yy'
            });
        });

        // bu funksiya heleki isledilmir
        function showEditDiv() {
            $("#divEnterIdentNo").fadeOut(500);
            setTimeout(function () { $("#divEditAnn, #divSaveInfo").fadeIn() }, 500);
            // $("#divAddedCategory").fadeIn();
            // setTimeout(function () { $("#divAddedCategory").fadeOut() }, 3000);
        };
        //bu isleyir
        function showEditDivNoEffect() {
            $("#divEnterIdentNo").hide();
            $("#divEditAnn, #divSaveInfo").show();
        };

    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <!-- Yerləşdirildi Və Error Mesajları -->
    <div id="jobAdded" class="msg-job-added">İş Elanı Müvəffəqiyyətlə Yeniləndi</div>
    <div id="msgError" class="msg-error">Yenilənmə Zamanı Problem Yarandı</div>
    <div id="msgPicError" class="msg-error">Yenilənəcək Şəkil Faylı Seçilməyib</div>
    <!--  -->
    <div class="container" style="margin-top: 30px">
        İş Elanını Yenilə
    </div>
    <hr />
    <asp:UpdatePanel ID="upEditAnn" runat="server" style="min-height:300px">
        <ContentTemplate>
            <!-- Identifikasiya nomresini daxil etme bolmesi -->
            <div id="divEnterIdentNo" class="container" style="text-align: center">
                <asp:TextBox ID="txtIdentificationNo" runat="server" Style="height: 24px; width: 200px; font-size: 15px"></asp:TextBox>
                <asp:Button ID="btnGetAnnouncement" ClientIDMode="Static" runat="server" CssClass="btn-add-ann" Text="Redaktə" OnClick="btnGetAnnouncement_Click" />
            </div>
            <!-- -->

            <div id="divEditAnn" class="container" style="display:none">
                <asp:Panel ID="pnlEditAnn" runat="server" Visible="false">
                    <label id="lblStatus"></label>
                    <div style="color: gray; font-style:italic; font-size:14px">
                        Qeyd: Nəzərə alın ki, siz elanı yenilədikdə yenidən bizim təsdiqimiz ilə yayımlanacaq..
                    </div>
                    <div class="editBlockLeft">
                        <div class="blockGroup">
                            <div>Elanın Nömrəsi</div>
                            <asp:Label ID="lblID" runat="server" Style="font-size: 15px; font-family: calibri; color: gray" Text=""></asp:Label>
                        </div>
                        <div class="blockGroup">
                            <div>Şəkil</div>
                            <asp:Image ID="imgOrgPic" runat="server" CssClass="imgOrgPic" />
                            <br />
                            <div style="width: 100% !important">
                                <asp:UpdatePanel ID="upImage" runat="server" UpdateMode="Conditional" RenderMode="Inline">
                                    <ContentTemplate>
                                        <asp:RadioButton ID="rdbNotChange" runat="server" Checked="true" GroupName="pic" OnCheckedChanged="rdbNotChange_CheckedChanged" Text="Dəyişmə" AutoPostBack="True" CssClass="radiobutton" />
                                        <asp:RadioButton ID="rdbChange" runat="server" GroupName="pic" Text="Dəyiş" AutoPostBack="True" OnCheckedChanged="rdbChange_CheckedChanged" CssClass="radiobutton" />
                                        <asp:RadioButton ID="rdbDelete" runat="server" GroupName="pic" Text="Sil" AutoPostBack="True" OnCheckedChanged="rdbDelete_CheckedChanged" CssClass="radiobutton" />

                                        <asp:FileUpload ID="fuOrgLogo" runat="server" Enabled="false" CssClass="fileupload" /><br />

                                        <asp:Label ID="lblOldPicPath" runat="server" Visible="false"></asp:Label>
                                    </ContentTemplate>
                                </asp:UpdatePanel>
                            </div>
                        </div>
                        <br />
                        <div class="blockGroup">
                            <div>Təşkilat adı</div>
                            <asp:TextBox ID="txtOrgName" runat="server" ClientIDMode="Static" Text=''></asp:TextBox>*
                        </div>
                        <div class="blockGroup">
                            <div>Vəzifə</div>
                            <asp:TextBox ID="txtPosition" runat="server" ClientIDMode="Static" Text=''></asp:TextBox>*
                        </div>
                        <div class="blockGroup">
                            <div>Email</div>
                            <asp:TextBox ID="txtEmail" runat="server" ClientIDMode="Static" TextMode="Email" Text=''></asp:TextBox>*
                        </div>
                        <div class="blockGroup">
                            <div>Telefon</div>
                            <asp:TextBox ID="txtPhone" runat="server" ClientIDMode="Static" TextMode="Phone" Text=''></asp:TextBox>*
                        </div>
                        <div class="blockGroup">
                            <div>Əlaqəli şəxs</div>
                            <asp:TextBox ID="txtRelatedPerson" runat="server" ClientIDMode="Static" Text=''></asp:TextBox>
                        </div>
                        <div class="blockGroup">
                            <div>Sahə</div>
                            <asp:DropDownList CssClass="" ID="txtSector" runat="server" DataTextField="NAME" DataValueField="ID" ClientIDMode="Static"></asp:DropDownList>*
                        </div>
                        <div class="blockGroup">
                            <div>İxtisas</div>
                            <select id="txtSubSector" name="txtSubSector"></select>
                            <asp:Label ID="lblSubSector" ClientIDMode="Static" runat="server" Visible="true"  ></asp:Label> <!-- Gizli Ixtisas label-i -->
                        </div>
                        <div class="blockGroup">
                            <div>İş tipi</div>
                            <asp:DropDownList ID="txtJobType" runat="server" ClientIDMode="Static" DataSourceID="dsJobType" DataTextField="NAME" DataValueField="ID"></asp:DropDownList>*
                        </div>
                        <div class="blockGroup">
                            <div>Şəhər</div>
                            <asp:DropDownList ID="txtCity" runat="server" ClientIDMode="Static" DataSourceID="dsCity" DataTextField="NAME" DataValueField="ID"></asp:DropDownList>*
                        </div>
                        <div class="blockGroup">
                            <div>Minimum Maaş</div>
                            <asp:DropDownList ID="txtSalaryMin" runat="server" ClientIDMode="Static">
                                <asp:ListItem Value="-1">Seçilməyib</asp:ListItem>
                                <asp:ListItem>100</asp:ListItem>
                                <asp:ListItem>200</asp:ListItem>
                                <asp:ListItem>300</asp:ListItem>
                                <asp:ListItem>400</asp:ListItem>
                                <asp:ListItem>500</asp:ListItem>
                                <asp:ListItem>600</asp:ListItem>
                                <asp:ListItem>700</asp:ListItem>
                                <asp:ListItem>800</asp:ListItem>
                                <asp:ListItem>900</asp:ListItem>
                                <asp:ListItem>1000</asp:ListItem>
                                <asp:ListItem>1100</asp:ListItem>
                                <asp:ListItem>1200</asp:ListItem>
                                <asp:ListItem>1300</asp:ListItem>
                                <asp:ListItem>1400</asp:ListItem>
                                <asp:ListItem>1500</asp:ListItem>
                                <asp:ListItem>1600</asp:ListItem>
                                <asp:ListItem>1700</asp:ListItem>
                                <asp:ListItem>1800</asp:ListItem>
                                <asp:ListItem>1900</asp:ListItem>
                                <asp:ListItem>2000</asp:ListItem>
                                <asp:ListItem>2100</asp:ListItem>
                                <asp:ListItem>2200</asp:ListItem>
                                <asp:ListItem>2300</asp:ListItem>
                                <asp:ListItem>2400</asp:ListItem>
                                <asp:ListItem>2500</asp:ListItem>
                                <asp:ListItem>2600</asp:ListItem>
                                <asp:ListItem>2700</asp:ListItem>
                                <asp:ListItem>2800</asp:ListItem>
                                <asp:ListItem>2900</asp:ListItem>
                                <asp:ListItem>3000</asp:ListItem>
                                <asp:ListItem>3200</asp:ListItem>
                                <asp:ListItem>3500</asp:ListItem>
                                <asp:ListItem>3800</asp:ListItem>
                                <asp:ListItem>4000</asp:ListItem>
                                <asp:ListItem>4200</asp:ListItem>
                                <asp:ListItem>4500</asp:ListItem>
                                <asp:ListItem>4800</asp:ListItem>
                                <asp:ListItem>5000</asp:ListItem>
                                <asp:ListItem>5500</asp:ListItem>
                                <asp:ListItem>6000</asp:ListItem>
                            </asp:DropDownList>*
                        </div>
                        <div class="blockGroup">
                            <div>Maksimum Maaş</div>
                            <asp:DropDownList ID="txtSalaryMax" runat="server" ClientIDMode="Static">
                                <asp:ListItem Value="-1">Seçilməyib</asp:ListItem>
                                <asp:ListItem>100</asp:ListItem>
                                <asp:ListItem>200</asp:ListItem>
                                <asp:ListItem>300</asp:ListItem>
                                <asp:ListItem>400</asp:ListItem>
                                <asp:ListItem>500</asp:ListItem>
                                <asp:ListItem>600</asp:ListItem>
                                <asp:ListItem>700</asp:ListItem>
                                <asp:ListItem>800</asp:ListItem>
                                <asp:ListItem>900</asp:ListItem>
                                <asp:ListItem>1000</asp:ListItem>
                                <asp:ListItem>1100</asp:ListItem>
                                <asp:ListItem>1200</asp:ListItem>
                                <asp:ListItem>1300</asp:ListItem>
                                <asp:ListItem>1400</asp:ListItem>
                                <asp:ListItem>1500</asp:ListItem>
                                <asp:ListItem>1600</asp:ListItem>
                                <asp:ListItem>1700</asp:ListItem>
                                <asp:ListItem>1800</asp:ListItem>
                                <asp:ListItem>1900</asp:ListItem>
                                <asp:ListItem>2000</asp:ListItem>
                                <asp:ListItem>2100</asp:ListItem>
                                <asp:ListItem>2200</asp:ListItem>
                                <asp:ListItem>2300</asp:ListItem>
                                <asp:ListItem>2400</asp:ListItem>
                                <asp:ListItem>2500</asp:ListItem>
                                <asp:ListItem>2600</asp:ListItem>
                                <asp:ListItem>2700</asp:ListItem>
                                <asp:ListItem>2800</asp:ListItem>
                                <asp:ListItem>2900</asp:ListItem>
                                <asp:ListItem>3000</asp:ListItem>
                                <asp:ListItem>3200</asp:ListItem>
                                <asp:ListItem>3500</asp:ListItem>
                                <asp:ListItem>3800</asp:ListItem>
                                <asp:ListItem>4000</asp:ListItem>
                                <asp:ListItem>4200</asp:ListItem>
                                <asp:ListItem>4500</asp:ListItem>
                                <asp:ListItem>4800</asp:ListItem>
                                <asp:ListItem>5000</asp:ListItem>
                                <asp:ListItem>5500</asp:ListItem>
                                <asp:ListItem>6000</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                        <div class="blockGroup">
                            <div>Minimum Yaş</div>
                            <asp:DropDownList ID="txtAgeMin" ClientIDMode="Static" runat="server"></asp:DropDownList>*
                        </div>
                        <div class="blockGroup">
                            <div>Maksimum Yaş</div>
                            <asp:DropDownList ID="txtAgeMax" runat="server" ClientIDMode="Static"></asp:DropDownList>
                        </div>
                        <div class="blockGroup">
                            <div>Cinsi</div>
                            <asp:DropDownList ID="txtSex" runat="server" ClientIDMode="Static" DataSourceID="dsSex" DataTextField="NAME" DataValueField="ID"></asp:DropDownList>
                        </div>
                    </div>

                    <div class="editBlockLeft">
                        <div class="blockGroup">
                            <div>Təhsil səviyyəsi</div>
                            <asp:DropDownList ID="txtEducationLevel" runat="server" ClientIDMode="Static" DataSourceID="dsEducationLevel" DataTextField="NAME" DataValueField="ID"></asp:DropDownList>
                        </div>
                        <div class="blockGroup">
                            <div>Təcrübə müddəti</div>
                            <asp:DropDownList ID="txtExperienceTime" runat="server" ClientIDMode="Static">
                                <asp:ListItem Value="-1">Seçilməyib</asp:ListItem>
                                <asp:ListItem>1</asp:ListItem>
                                <asp:ListItem>2</asp:ListItem>
                                <asp:ListItem>3</asp:ListItem>
                                <asp:ListItem>4</asp:ListItem>
                                <asp:ListItem>5</asp:ListItem>
                                <asp:ListItem>6</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                        <div class="blockGroup">
                            <div>Əsas tələblər</div>
                            <asp:TextBox ID="txtQualifications" runat="server" ClientIDMode="Static" CssClass="multlineInput" TextMode="MultiLine" Text=''></asp:TextBox>*
                        </div>

                        <div class="blockGroup">
                            <div>İş haqqında məlumat</div>
                            <asp:TextBox ID="txtJobDescription" runat="server" ClientIDMode="Static" CssClass="multlineInput" TextMode="MultiLine" Text=''></asp:TextBox>*
                        </div>
                        <div class="blockGroup">
                            <div>Vakansiya sayı</div>
                            <asp:DropDownList ID="txtVacancyQuantity" runat="server" ClientIDMode="Static">
                                <asp:ListItem Value="-1">Seçilməyib</asp:ListItem>
                                <asp:ListItem>1</asp:ListItem>
                                <asp:ListItem>2</asp:ListItem>
                                <asp:ListItem>3</asp:ListItem>
                                <asp:ListItem>4</asp:ListItem>
                                <asp:ListItem>5</asp:ListItem>
                                <asp:ListItem>6</asp:ListItem>
                            </asp:DropDownList>
                        </div>
                    </div>
                </asp:Panel>
            </div>
        </ContentTemplate>
    </asp:UpdatePanel>
    <div id="divSaveInfo" style="display:none; width: 100%; float: left">
        <asp:UpdatePanel ID="upSaveInfo" runat="server">
            <ContentTemplate>
                <asp:Panel ID="pnlSaveInfo" runat="server" Visible="false">
                    <asp:Button ID="btnSave" runat="server" ClientIDMode="Static" Text="Yadda saxla" CssClass="btn-add-ann" OnClick="btnSave_Click" />
                    <label class="lblValidation">Qeyd olunan sahəni düzgün doldurun</label>
                </asp:Panel>
            </ContentTemplate>
            <Triggers>
                <asp:PostBackTrigger ControlID="btnSave" />
            </Triggers>
        </asp:UpdatePanel>
    </div>


    <asp:SqlDataSource ID="dsCity" runat="server" ConnectionString="<%$ ConnectionStrings:KARIYERADB %>"
        SelectCommand=" SELECT DICTIONARY.NAME, DICTIONARY.ID    FROM DICTIONARY WHERE DICTIONARY.TYPEID = 3 AND DICTIONARY.ACTIVE <> 0 UNION SELECT N'Seçilməyib', -1 "></asp:SqlDataSource>
    <asp:SqlDataSource ID="dsEducationLevel" runat="server" ConnectionString="<%$ ConnectionStrings:KARIYERADB %>"
        SelectCommand="SELECT DICTIONARY.NAME, DICTIONARY.ID FROM DICTIONARY 
                WHERE (DICTIONARY.TYPEID = 5) AND (DICTIONARY.ACTIVE != 0) UNION SELECT N'Seçilməyib', -1 "></asp:SqlDataSource>
    <asp:SqlDataSource ID="dsJobType" runat="server" ConnectionString="<%$ ConnectionStrings:KARIYERADB %>"
        SelectCommand="SELECT DICTIONARY.NAME, DICTIONARY.ID FROM DICTIONARY 
                WHERE (DICTIONARY.TYPEID = 2) AND (DICTIONARY.ACTIVE != 0) UNION SELECT N'Seçilməyib', -1 "></asp:SqlDataSource>
    <asp:SqlDataSource ID="dsSex" runat="server" ConnectionString="<%$ ConnectionStrings:KARIYERADB %>"
        SelectCommand="SELECT DICTIONARY.NAME, DICTIONARY.ID FROM DICTIONARY 
                WHERE (DICTIONARY.TYPEID = 4) AND (DICTIONARY.ACTIVE != 0) UNION SELECT N'Seçilməyib', -1 "></asp:SqlDataSource>
</asp:Content>

1 个答案:

答案 0 :(得分:0)

怎么样:

var subs = $('#lblSubSector').text();
$('#txtSubSector').append('<option value="' + subs  + '">Volvo</option>');

<强>更新

然后,我认为这是因为您在为options项生成select之前尝试设置该值。假设您有一个名为BindOptionsFunction的函数来生成选项,您可以这样做:

$.when( BindOptionsFunction ).done(function() {
   var subs = $('#lblSubSector').text();
   $('#txtSubSector').val(subs);
});
相关问题