2011-06-14 78 views
1

我有一個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> 

回答

3

我以前經歷過這一點 - 不與jQuery,但與YUI。我相信.val()方法很容易返回值之前更改事件已傳播 - 而直接訪問底層DOM元素的值應該工作。因此,而不是:

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

你會碰到這樣的:

var plantid = $('.drpplants').get(0).value; 

您可能需要糾正第二語法 - 我不知道這是在訪問基礎DOM節點的最佳途徑jQuery ...

+1

謝謝!這與更改0到1一起工作! $('。drpplants')。get(1).value; – Funky 2011-06-14 14:59:05