微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery对话框:从对话框中的文本框获取值不起作用将获取旧值

如何解决jQuery对话框:从对话框中的文本框获取值不起作用将获取旧值

|| 我有一个JQuery对话框,里面有一个包含文本框的控件,我里面也有一个保存按钮。 在保存上单击“我从文本框获取值并将其传递给函数”。 问题: 每当我在文本框中更改值时,它只会获取旧值, 因此,如果原始值为2,则将其更改为20,然后单击按钮,它将获得值2。 有人对为什么这样做有任何想法吗? 谢谢! 这是一些代码: JQUERY:
  $(\"#inputupdatecontrol<%=PlantID %>\").dialog({
            autoOpen: false,modal: true,width: 500,height: 400
    });
HTML:
<script type=\"text/javascript\">
function SaveActivityManagementData() {

    var plantid = $(\'.drpplants\').val();
    var worktype = $(\'.worktype\').val();

    var startdate = $(\'.startdate\').val();

    var enddate = $(\'.enddate\').val();
    var planid = $(\'.planid\').val();
    var mob = $(\'.mob\').val();

    var assignedto = $(\"input[name=txtassignedtoid]\").attr(\"value\");
    var currentuserId = $(\"input[name=CurrentUserId]\").attr(\"value\");
    var clientId = $(\"input[name=ClientId]\").attr(\"value\");


    AjaxSaveActivityManagementData(plantid,worktype,startdate,enddate,planid,mob,assignedto,currentuserId,clientId);
    }

</script>


<table>
<tr>
    <td>Plant:</td>
    <td><asp:DropDownList ID=\"drpPlants\" runat=\"server\" DataValueField=\"Id\" DataTextField=\"Name\" CssClass=\"drpplants\"></asp:DropDownList></td>
</tr>

<tr>
    <td>Work Order:</td>
    <td>
        <div>
            <asp:Label ID=\"lblExisiting\" runat=\"server\" Text=\"Existing\"></asp:Label>
            <asp:RadioButton runat=\"server\" GroupName=\"workorder\" ID=\"rbExisting\" Checked=\"true\" />
            <asp:DropDownList ID=\"DropDownList1\" runat=\"server\"></asp:DropDownList>
        </div>
        <div>
            <asp:Label ID=\"Label1\" runat=\"server\" Text=\"New\"></asp:Label>
            <asp:RadioButton ID=\"rbNew\" runat=\"server\" GroupName=\"workorder\" />
            <asp:TextBox ID=\"txtnew\" runat=\"server\"></asp:TextBox>
        </div>
    </td>
</tr>

<tr>
    <td>Work Type:</td>
    <td>
        <asp:DropDownList ID=\"DropDownList2\" runat=\"server\" CssClass=\"worktype\">
            <asp:ListItem Text=\"non-routine\"></asp:ListItem> 
            <asp:ListItem Text=\"pilot project\"></asp:ListItem> 
            <asp:ListItem Text=\"routine\"></asp:ListItem> 
        </asp:DropDownList>
   </td>
</tr>

<tr>
    <td>Description:</td>
    <td><asp:TextBox ID=\"txtDesc\" runat=\"server\"></asp:TextBox></td>
</tr>

<tr>
    <td>Start Date:</td>
    <td><asp:TextBox ID=\"txtStartDate\" runat=\"server\" CssClass=\"startdate\"></asp:TextBox></td>
</tr>

<tr>
    <td>End Date:</td>
    <td><asp:TextBox ID=\"txtEndDate\" runat=\"server\" CssClass=\"enddate\"></asp:TextBox></td>
</tr>

<tr>
    <td>Plan ID:</td>
    <td><asp:TextBox ID=\"txtPlanId\" runat=\"server\" CssClass=\"planid\"></asp:TextBox></td>
</tr>

   <tr>
    <td>MOB:</td>
    <td><asp:TextBox ID=\"txtMOB\" runat=\"server\" CssClass=\"mob\"></asp:TextBox></td>
</tr>

<tr>
    <td>Assigned To:</td>
    <td>
        <asp:TextBox ID=\"txtAssignedTo\" runat=\"server\" CssClass=\"assignedto\"></asp:TextBox>
        <input type=\"text\" name=\"txtassignedtoid\" visible=\"false\" class=\"assignedtoid\" style=\"display:none;\" />            
        <input type=\"text\" name=\"CurrentUserId\" visible=\"false\" class=\"userid\" style=\"display:none;\"  />                  
        <input type=\"text\" name=\"ClientId\" visible=\"false\" class=\"clientid\" style=\"display:none;\"  />                 
    </td>
</tr>

<tr>
    <td></td>
    <td><asp:CheckBox runat=\"server\" ID=\"chkOverRide\" Text=\"Override\" /></td>
</tr>

<tr>
    <td></td>
    <td><asp:DropDownList ID=\"drpAssignment\" runat=\"server\" DataTextField=\"FirstName\" DataValueField=\"id\"></asp:DropDownList></td>
</tr>

<tfoot>
    <tr>
        <td></td>
        <td>
            <asp:Button ID=\"btnSave\" runat=\"server\" Text=\"Save\" OnClientClick=\"SaveActivityManagementData();\"/>
            <asp:Button ID=\"btnDelete\" runat=\"server\" Text=\"Delete\" OnClick=\"DeleteClick\" />
            <asp:Button ID=\"btnCancel\" CssClass=\"btnFormCancel\" runat=\"server\" Text=\"Cancel\" />
        </td>
    </tr>
</tfoot>
    

解决方法

        我以前曾经经历过-不是使用jQuery,而是使用YUI。我相信
.val()
方法很容易在更改事件传播之前返回值-而直接访问底层DOM元素的值应该可以工作。所以代替:
var plantid = $(\'.drpplants\').val();
您会有类似以下内容:
var plantid = $(\'.drpplants\').get(0).value;
您可能需要更正第二种语法-我不确定这是访问jQuery中基础DOM节点的最佳方法...     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。