JQuery在同一行中查找相对表单元素

时间:2011-07-25 14:10:08

标签: jquery html

您可能已经看到我的last question我使用以下内容向表中注入一行

$(':radio').live("click", function() {     
  $('#bdTable tr:last').after(makeHTML()); 
 });

makeHTML()函数吐出以下代码

<tr>
    <tr>
        <td>
            <input type="amount" name="amount" id="amount" >        
        </td>
        <td>                    
        <select name="frequency" id="frequency" >
            <option value="">Weekly</option>
            <option value="">Fortnightly</option>
            <option selected="selected" value="">Monthly</option>
            <option value="">Annually</option
        </select>
    </td>
    <td >                       
        <input id="Yes" name="Yes" value="0" type="radio">
        <label for="">Yes</label>
        <input id="No" name="No" value="1" type="radio" >
        <label for="">No</label>
    </tr>
</tr>

现在有一种方法可以添加一个条件,只有当与单选按钮位于同一行的文本框的长度大于零时才会激活单击功能(因此输入了一些内容)。这样,只有在该行完成时才会注入新行。对不起,如果我的措辞很糟糕,我可以对此进行扩展。

3 个答案:

答案 0 :(得分:1)

注意:您对多个HTML元素使用相同的ID(金额)。它无效。此外,没有任何类型的输入元素称为金额。将其更改为type =“text”

试试这个:

$(':radio').live("click", function() {        
    var amount = $.trim($(this).closest("tr").find("input[name='amount']").val());
    if(amount.length > 0){
        $('#bdTable tr:last').after(makeHTML());   
    }
});

答案 1 :(得分:0)

试试这个

$(':radio').live("click", function() {     
  var $amount = $(this).closest("tr").find("#amount").val();
    if($amount.length > 0){
        $('#bdTable tr:last').after(makeHTML());   
    }
 });

答案 2 :(得分:0)

我不确定我是否理解这个问题,但请尝试:

var myLength = $("#myTextbox").val().length;
    if(myLength > 0)
    {
          // work your magic
    }

试试吧!