2014-02-06 24 views
0

我有2行的表。行包含一個文本框和一個提交按鈕。表中的隱形/可見提交按鈕

問:

當用戶點擊文本框,然後提交按鈕應該是我visible.How能做到這一點。 我嘗試使用最近的功能,但它不起作用。

HTML代碼

<table id="table1"> 
    <tr><td><input type="text"/></td><td><input type="submit" value="validate" style="display:none"/></td></tr> 
    <tr><td><input type="text"/></td><td><input type="submit" value="validate" style="display:none"/></td></tr> 
</table> 

JQuery的

$(文件)。就緒(函數(){

$("#table1").on("click", "input:text", function(event) { 
     var parent = $(this).closest('td').show(); 
     alert('Clicked') 
    }) 

})

http://jsfiddle.net/92HHG/1/

回答

1

在這裏你可以使用closest()目標TD然後導航到下一TD和發現提交按鈕

$(this).closest('td').next('td').find(':submit').show(); 

DEMO

在這裏你可以使用closest()目標TR然後找到提交按鈕

$(this).closest('tr').find(':submit').show(); 

DEMO 2

+0

這一個工作,但是當我點擊下一個文本框,第一個是仍然可見。它不應該顯示...我試過$(this).closest('table')。find(':submit')。not(this).hide();但它不起作用 – user1050619

+0

@ user1050619,Heres解決方案http://jsfiddle.net/satpalsingh/92HHG/7/只需找到所有_submit_按鈕並在顯示當前的按鈕之前隱藏它們 – Satpal

0

在e方法是$(this).parents('tr:eq(0)').find('[type=submit]').show();

它找到文本框的第一個父tr,然後找到子提交。

或者你可以做$(this).parent().next()獲得下一個TD

1
$(document).ready(function(){ 

     $("#table1").on("click", "input:text", function(event) { 
      $('input[type=submit]').hide(); 
      $button = $(this).parent().next().find('input'); 

      $button.show(); 


     }) 

}) 

這是最好的解決辦法:d

0

你去那裏:

 $(this).closest("tr").find("input[type=submit]").show(); 
0

略有不同的方法,以響應那些不喜歡錶格佈局的人。 而只是「顯示」按鈕的另一種方法。

我已經使用過「.blur」,但你會使用.focus,.click,無論你想要什麼。

FIDDLE

HTML

<div class='holderdiv'> 
    <div><input id='upperin' type="text"/><input type="submit" value="Validate" id='upperbutton'/></div> 
    <div><input id='lowerin' type="text"/><input type="submit" value="Validate" id='lowerbutton'/></div> 
</div> 

JS

$('#upperin').blur(function(){ 
     $('#upperbutton').css('visibility', 'visible'); 
}); 
$('#lowerin').blur(function(){ 
     $('#lowerbutton').css('visibility', 'visible'); 
});