我几天前问了一个问题,@ RustyTheBoyRobot很友好地回答了。
以下代码100%正常工作,但我需要一种方法在页面上添加多个“查找地址”按钮。一个用于街道地址,一个用于邮政地址。
有人能告诉我如何在不重复模态框和Javascript的情况下实现这一目标吗?
UPDATE:经过一些测试后,我想出了我需要做什么,我需要一些方法将一个变量从Buttons传递到表模态形式,所以当我点击一行时它只更新了我指定的表单字段。
代码
我在带有表格的模态框中创建了一个表单。当您单击表格行时,它会在父页面上填充表单。
模态框
<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
<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>
父表单,其中填写表单字段
<form id="profile">
<ul>
<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>
<li><input type="submit" id="submit" value="Save"></li>
</ul>
</form>
答案 0 :(得分:2)
简而言之,您可以考虑制作一个jquery插件。
如果您想出一种使用特定按钮识别地址字段的统一方法,jquery插件可以自动计算出正确的字段等等。
这是一个不错的教程:
http://www.authenticsociety.com/blog/jQueryPluginTutorial_Beginner
答案 1 :(得分:0)
我最终使用jquery根据你点击的按钮向表td添加不同的类名。
守则
<script type="text/javascript">
$(document).ready(function() {
$('#find_address').click(function(){
$('#modal_form').dialog('open');
$('table#table-data_classy').attr( 'id', 'table-data' ); $('td.address_street_classy').removeClass("address_street_classy").addClass("address_street"); $('td.address_suburb_classy').removeClass("address_suburb_classy").addClass("address_suburb");
$('td.address_city_classy').removeClass("address_city_classy").addClass("address_city");
}); //end click handler
$('#find_address_classy').click(function(){
$('#modal_form').dialog('open');
$('table#table-data').attr( 'id', 'table-data_classy' );
$('td.address_street').removeClass("address_street").addClass("address_street_classy");
$('td.address_suburb').removeClass("address_suburb").addClass("address_suburb_classy");
$('td.address_city').removeClass("address_city").addClass("address_city_classy");
}); //end click handler
}); //end ready event
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#table-data tr').live('click', function () {
var curRowClass = $(this).attr("class");
$('#street_name').val( $('.' + curRowClass + ' td.address_street').text() );
$('#suburb').val( $('.' + curRowClass + ' td.address_suburb').text() );
$('#city').val( $('.' + curRowClass + ' td.address_city').text() );
$("#modal_form").dialog('close');
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#table-data_classy tr').live('click',function () {
var curRowClass = $(this).attr("class");
$('#street_name_classy').val( $('.' + curRowClass + ' td.address_street_classy').text() );
$('#suburb_classy').val( $('.' + curRowClass + ' td.address_suburb_classy').text() );
$('#city_classy').val( $('.' + curRowClass + ' td.address_city_classy').text() );
$("#modal_form").dialog('close');
});
});
干杯