2011-08-22 18 views
0

傳遞一個變量I在具有表模態對話框創建的形式。當你點擊一個表格行時,它會在父頁面上填寫一個郵政地址表單。一切都在順利進行(在StackOverflow的幫助下),但隨後我得到了爲街道地址添加第二個按鈕的任務。從一個按鈕中的Jquery

我已經加入了第二個按鈕,並將其鏈接到同一形式,現在我需要一種方法來傳遞變量,因此第一個按鈕只寫我指定的表單字段,與同爲第二個按鈕。

任何幫助將不勝感激。

代碼 - JS小提琴的例子 - http://jsfiddle.net/clintongreen/rc2Ky/

我已經創建了一個表中的模式對話框的形式。當你點擊一個表格行時,它會在父頁面上填充一個表單。

模式對話框與表

<div id="modal_form" title="Address Search"> 
<form id="address_search"> 
<ul> 
    <li><label for="name">Search by street description</label> 
     <input type="text" name="street_description" id="street_description" /> 
     <input type="button" id="search_button" class="form_button" value="Search"></li> 
</ul> 
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="table-data"> 
       <tbody><tr> 
       <td width="200px"><a href="#">Street</a></td> 
       <td width="200px"><a href="#">Suburb</a></td> 
       <td width="200px"><a href="#">City</a></td> 
       </tr> 
       <tr id="row1"> 
       <td class="address_street">Harambee Road</td> 
       <td class="address_suburb">Onerai</td> 
       <td class="address_city">Onerai Rural</td> 
       </tr> 
       <tr id="row2"> 
       <td class="address_street">Hutchinson Road</td> 
       <td class="address_suburb">Mt Wellington</td> 
       <td class="address_city">Auckland City</td> 
       </tr> 
       <tr id="row3"> 
       <td class="address_street">Kauri Road</td> 
       <td class="address_suburb">Westfordshire</td> 
       <td class="address_city">Palmerston North</td> 
       </tr> 
     </tbody></table><!-- /table#table-data --> 
    </form> 
</div><!-- /div#modal_form --> 

的Javascript

<!-- TO OPEN THE MODAL BOX --> 
<script type="text/javascript"> 
$(document).ready(function() { 
$('#find_address').click(function(){ 
$('#modal_form').dialog('open'); 
}); //end click handler 
$('#find_address1').click(function(){ 
$('#modal_form').dialog('open'); 
}); //end click handler 
}); //end ready event 
</script> 

<!-- FOR FIRST BUTTON --> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#table-data tr').click(function() { 
     var curRowId = $(this).attr("id"); 
     $('#street_name').val($('#' + curRowId + ' td.address_street').text()); 
     $('#suburb').val($('#' + curRowId + ' td.address_suburb').text()); 
     $('#city').val($('#' + curRowId + ' td.address_city').text()); 
    $("#modal_form").dialog('close'); 
    }); 
    }); 
</script> 

<!-- FOR SECOND BUTTON --> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#table-data tr').click(function() { 
     var curRowId = $(this).attr("id"); 
     $('#street_name1').val($('#' + curRowId + ' td.address_street').text()); 
     $('#suburb1').val($('#' + curRowId + ' td.address_suburb').text()); 
     $('#city1').val($('#' + curRowId + ' td.address_city').text()); 
    $("#modal_form1").dialog('close'); 
    }); 
    }); 
</script> 

形式,其中的字段填入

<form id="profile"> 
<ul> 
<!-- FIRST BUTTON SECTION --> 
<li><label for="street_number">Street Number</label><input id="street_number" type="text" placeholder="Street Number" name="street_number" ><input type="button" class="form_button" id="find_address" value="Find Address"></li> 
<li><label for="street_name">Street Name</label><input id="street_name" type="text" placeholder="Street Name" name="street_name" disabled="disabled" ></li> 
<li><label for="suburb">Suburb</label><input id="suburb" type="text" placeholder="Suburb" name="suburb" disabled="disabled" ></li> 
<li><label for="city">City</label><input id="city" type="text" placeholder="City" name="city" disabled="disabled" ></li> 

<!-- SECOND BUTTON SECTION --> 
<li><label for="street_number">Street Number</label><input id="street_number" type="text" placeholder="Street Number" name="street_number" ><input type="button" class="form_button" id="find_address1" value="Find Address"></li> 
<li><label for="street_name1">Street Name</label><input id="street_name1" type="text" placeholder="Street Name" name="street_name1" disabled="disabled" ></li> 
<li><label for="suburb1">Suburb</label><input id="suburb1" type="text" placeholder="Suburb" name="suburb1" disabled="disabled" ></li> 
<li><label for="city1">City</label><input id="city1" type="text" placeholder="City" name="city1" disabled="disabled" ></li> 

<li><input type="submit" id="submit" value="Save"></li> 
</ul> 
</form> 

回答

0

我設法通過改變按鈕點擊TD的類來解決這個問題,我也不得不改變類的表。我使用的代碼如下。

守則

<script type="text/javascript"> 
$(document).ready(function() { 
$('#find_address').click(function(){ 
$('#modal_form').dialog('open'); 
$('table#table-data_postal').attr('id', 'table-data'); 
$('td.address_street_postal').removeClass("address_street_postal").addClass("address_street"); 
$('td.address_suburb_postal').removeClass("address_suburb_postal").addClass("address_suburb"); 
$('td.address_city_postal').removeClass("address_city_postal").addClass("address_city"); 
$('td.address_code_postal').removeClass("address_city_postal").addClass("address_code"); 
$('label#suburb_search').css('display','none'); 
$('label#street_search').css('display','inline'); 
$('input#street_description').css('width','330px'); 
}); //end click handler 
$('#find_address_postal').click(function(){ 
$('#modal_form').dialog('open'); 
$('table#table-data').attr('id', 'table-data_postal'); 
$('td.address_street').removeClass("address_street").addClass("address_street_postal"); 
$('td.address_suburb').removeClass("address_suburb").addClass("address_suburb_postal"); 
$('td.address_city').removeClass("address_city").addClass("address_city_postal"); 
$('td.address_code').removeClass("address_code").addClass("address_code_postal"); 
$('label#suburb_search').css('display','none'); 
$('label#street_search').css('display','inline'); 
$('input#street_description').css('width','330px'); 
}); //end click handler 
}); //end ready event 
</script> 
2

您應該在每一行上都有第二個按鈕,以便您知道您正在點擊第二個按鈕,然後您就可以採取相應的措施。現在你正在做的是在每個tr元素上附加一個點擊處理程序。假設你有第二個按鈕secondButton,你可以嘗試下面的代碼。

//This code will attach a click event handler to the second button on each row 
$('#table-data tr .secondButton').click(function() { 
     var curRowId = $(this).closest('tr').attr("id"); 
     $('#street_name1').val($('#' + curRowId + ' td.address_street').text()); 
     $('#suburb1').val($('#' + curRowId + ' td.address_suburb').text()); 
     $('#city1').val($('#' + curRowId + ' td.address_city').text()); 
    $("#modal_form1").dialog('close'); 
    }); 
+0

桑卡您好,感謝但添加按鈕的錶行是不幸的不是一個選項。我需要從點擊激活從按鈕傳遞變量的有什麼想法點擊,使其知道它應該寫數據?乾杯 –

+0

在這種情況下,您無法區分同一行上的兩次點擊。 – ShankarSangoli

+0

你好,對不起,如果我是一個痛苦的,但我想要做的是按鍵#1,只有在形式#1更新領域的開放模式中,這種模式將關閉在click.But如果我點擊按鈕#2我只想以#2形式打開相同的模式但更新字段。請讓我知道這是不可能的,感謝你的努力,歡呼聲 –