我基本上是在尝试创建一个“方向”表单,每个“车站”都有一个地址输入和几个选择框选项。我希望能够“交换”表单,以便来自第一个“停止”的数据与来自第二个“停止”的数据交换。棘手的部分是,可能有两个以上的“止损”,因此掉期将需要能够处理掉期止损3-4,4-5,5-6等。
以下是基本表单模板:
<div class="forms">
<div class="address"><input type="text" /></div>
<div class="loc">
<select name="region">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="loc">
<select>
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
<option>e</option>
</select>
</div>
</div>
<div class="swap"><a>swap</a></div>
<div class="forms">
<div class="address"><input type="text" /></div>
<div class="loc">
<select name="region">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
</div>
<div class="loc">
<select>
<option>a</option>
<option>b</option>
<option>c</option>
<option>d</option>
<option>e</option>
</select>
</div>
如果可能的话,我想使用JQuery,但我真的不知道如何开始。
谢谢,布赖恩
发布于 2011-04-12 22:42:59
通常,在jQuery中,您只需使用.val()
设置输入值,它将根据表单类型(下拉列表、文本输入、文本区域等)来确定输入值。
考虑到这一点,以及您只交换邻近值的要求,您可以简单地执行以下操作:
$('.swap a').click(function() {
//Swaps previous and next address values
var prevAddress = $(this).parent().prev('.forms').find('.address input');
var nextAddress = $(this).parent().next('.forms').find('.address input');
var tmp = prevAddress.val();
prevAddress.val(nextAddress.val());
nextAddress.val(tmp);
});
在这里,我只完成了地址字段,但对于它们中的任何一个,它都应该是相同的。
发布于 2011-04-12 22:57:17
这可能不是最好的方法,但它回答了您的问题:http://jsfiddle.net/PBfvX/
注意:基于0的索引意味着如果您想要第一种形式和第二种形式,form1=0和form2=1
https://stackoverflow.com/questions/5636547
复制相似问题