只更改一个文本框而不是全部

时间:2012-08-22 14:35:21

标签: jquery textbox

输入密码后,我尝试用常规文本框替换密码文本框。此代码仅在第一个密码文本框不为空时才起作用,但它也会在每个密码文本框上执行代码。

if ($('input[type=password]').val() != "") {
                    $('input[type=password]').hide(); 
                    $('input[class=showPswd]').show(); 
                }

我认为这样的事情会奏效,但事实并非如此。

if ($('input[type=password]').val() != "") {
                        $(this).find('input[type=password]').hide(); 
                        $(this).find('input[class=showPswd]').show(); 
                    }

如何让代码查看每个密码文本框,并在文本框为空时仅替换该文本框?

由于

编辑:这是一般布局。有更多的行几乎相同。

                <td class="style1">
                    QA :</td>
                <td class="style2">
                <asp:DropDownList ID="DropDownList4" runat="server">                   
                    </asp:DropDownList>
                    </td>

                <td style="vertical-align:middle">
                    <asp:TextBox ID="TextBox4" runat="server" textmode="Password"></asp:TextBox>
                        <asp:TextBox ID="TextBox21" runat="server" style="display:none;" class="showPswd" value="Accepted"></asp:TextBox>

                    <asp:Label ID="Label4" runat="server" Text=""
                    ></asp:Label>
                    </td>                
            </tr>

1 个答案:

答案 0 :(得分:2)

利用each()函数,对每个具有类型密码的文本框进行操作,如下所示

    $('input[type=password]').each(
    function ()
    {
    if ($(this).val() != "")  
     { 
              $(this).hide(); 

              //just replace this line as you need not sure what is does 
              //$(this).find('input[class=showPswd]').show();
     } 

  });