如何将按钮名称设置为输入文本的值?

时间:2011-08-15 11:59:16

标签: jquery

我有以下html

<tr class="editorRow">
   <td class="emailRow">
      <input id="EmailSuccessList_0" 
             name="EmailSuccessList[0]" 
             type="text" value="asdf@lib.com">
   </td>
   <td>
      <button type="button" href="#" 
              class="deleteEmailRow button sexybutton "
              name="asdf@lib.com">delete</button>
   </td>
</tr>

我有以下Jquery(whcih有效),需要一些帮助选择器和/或方法来访问/更改用户输入的button名称。这对我来说似乎非常笨拙。

$('.emailRow input').live('keyup', function (e) {

      var target = this;
      var currentVal = $(this).val();
      $(target).parent().parent().find('button').attr('name', currentVal)
 });

4 个答案:

答案 0 :(得分:1)

这是我在Jquery API搜索之后到目前为止所提出的最好的...

$(target).closest('tr').find('button').attr('name', currentVal)

答案 1 :(得分:1)

如果您有动态构建的表,则可以使用委托:

$("table").delegate(".editorRow button").click(function(){

或只是常规选择器

$(".editorRow button").click(function(){

但每种方式都可以轻松找到电子邮件

    var email = $(this).closest("tr").find("input:text").val();
    // show your dialog
});

我无法想到您需要将按钮名称与文本框值同步的一个原因,因为您已经拥有它并且可以简单地找到它。

答案 2 :(得分:0)

$('#deleteEmailRow').attr('name', currentVal);

我想你在技术上甚至可以像这样替换currentVal

$('#deleteEmailRow').attr('name', $(this).val());

答案 3 :(得分:0)

这个HTML是由某个引擎生成的吗?像asp,asp.net,asp.net mvc或类似的Java或其他平台(我是.net家伙:))?如果是这样,您可以在生成按钮时生成有意义的ID,就像生成输入ID一样。之后,您可以轻松地从输入的keyup处理程序中引用该按钮。