2012-01-19 113 views
0

如何获取在下面的文本框中输入的值?获取文本框中输入的文本与jQuery丢失焦点

<tr> 
    <td class="TextBold" >1.</td> 
    <td class="TextBold" >Content for Question 1:</td> 
    <td class="TextBold" > 
     <input name="ctl00$DefaultContent$ctl2" type="text" class="TextNormal" /> 
    </td> 
    </tr> 

这给了我名的文本框的

var idT = $("td:contains('1.')").next().next().children().eq(0).attr('name'); 

现在我想编写功能,这将给在文本框中输入的值。

喜欢的东西:

$('input[name^=ctl00$DefaultContent$ctl2]').blur(function() { 
     alert($(this).val());  
    }); 

这为我工作:

$('input[name="' + idT + '"]').blur(function() { 
      alert($(this).val());  
     }); 
+0

你 “逃” 了'$'看到我更新的jsfiddle。 – gdoron 2012-01-19 02:02:56

回答

2

$('input[name="ctl00$DefaultContent$ctl2"]').val()应该给你的文本字段的值,但是“ctl00 $ DefaultContent $ ctl2”真的是这个名字吗?

看到这个jsFiddle

+0

这是动态生成的控件。当我查看源代码时,这就是输入控件的名称。 – BumbleBee 2012-01-19 00:45:35

3
$('input[name=' + id+ ']').blur(function() { 
    alert($(this).val()); 
}); 

请注意,您的变数名称是id但它的价值是名......为什么?

我将改变为:

var id = $("td:contains('1.')").next().next().children().eq(0).attr('id'); 

$('#' + id).blur(function() { 
    alert($(this).val()); 
}); 

JSFiddle例如

你必须"escape"$\\$与jQuery选择使用它。

+0

gdoron谢谢。我尝试了你发布的解决方案,但没有发生blur() – BumbleBee 2012-01-19 00:42:09

+0

@BumbleBee,你有没有得到一个id \你的选择器名称?问题可能在那里。 – gdoron 2012-01-19 00:43:31

+0

@BumbleBee,制作一个[JSFiddle](http://jsfiddle.net/),以便我们可以看到问题出在哪里 – gdoron 2012-01-19 00:46:05