2013-04-23 51 views
1

我遇到了jQuery的问题。当我开始在txtiPercentage文本框中编写文本时,应仅对该特定行禁用txtDollarAmtinfo文本框。gridview文本框启用禁用使用jQuery

<gridview ID="BulkEditGridView1" 
      runat="server" 
      AutoGenerateColumns="False" 
      DataKeyNames="Pk_PropertyID">  
    <Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
     <asp:TextBox ID="txtiPercentage" 
        Text='<%#Eval("BidPercentage","{0:0.000}") %>' 
        runat="server" 
        onKeyDown="OnKeyDownHandler(this,event)"></asp:TextBox> 
     <asp:TextBox ID="txtDollarAmtinfo" 
        Text='<%#Eval("BidDollarAmt","{0:0,00}") %>' 
        runat="server" ></asp:TextBox> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </gridview> 

脚本:

<script type="text/javascript"> 
    function OnKeyDownHandler(thisobj,e) { 
     var newid = $(thisobj).attr('id'); 
     $(thisobj).closest('tr') 
      .find("input[id$="txtDollarAmtinfo"]:not(input[id$=' + newid + '])') 
      .attr("disabled", "disabled")");   
    } 
</script> 
+2

ohhh您的代码太难以理解了,是否很难对其进行美化? – 2013-04-23 19:20:57

+0

如果您需要帮助,请使该代码可读。 – 2013-04-23 19:23:16

回答

0

摆脱在ASP内容OnKeyDown标记。使用jQuery

$("#<%= txtiPercentage.ClientID %>").keyup(function() { 
    var newID = $(this).attr("id"); 

    //Either find it with .next 
    $(this).next().prop("disabled", true); 

    //Or disable by ID 
    $("#<%=txtDollarAmtinfo.ClientID%>").prop("disabled", true); 
}); 

不要忘记在脚本的开头部分包含$(document).ready() {! :)

0

希望这会有所帮助。

<script> 
function lock_a_txt(sender) 
{ 
    var who_to_lock = $(sender).attr('data-lockdown-id'); 
    //disable by sender data tag value in the scope of the senders row 
    $('#' + who_to_lock, $(sender).parents('tr').first()).prop('disabled', true) 
} 
</script> 

<table> 
    <tr> 
     <td> 
      <asp:TextBox runat="server" ID="txtPercent" data-lockdown-id="txtDollar" onkeypress="javascript:lock_a_txt(this);" /> 
     </td> 
     <td> 
      <asp:TextBox runat="server" ID="txtDollar" /> 
     </td> 
    </tr> 
</table> 
0

您的报价不匹配。您的处理程序的结尾应该如下所示:

$(thisobj).closest('tr') 
     .find('input[id$="txtDollarAmtinfo"]:not(input[id$="' + newid + '"])') 
     .attr("disabled", "disabled"); 
+0

非常感谢你的工作 – user2205924 2013-04-24 13:56:05

+0

@ user2205924 - 很高兴听到它。如果我的答案适合您,请点击绿色复选标记以接受它。 – 2013-04-24 18:07:26