2014-04-24 99 views
2

我有两个文本框的值: -交换两个文本框的值

var pickup = $('#txt-pickup'); 
var destination = $('#txt-destination'); 

,我想交换两个值如下: -

pickup.val(destination.val()); 
destination.val(pickup.val()); 

然而,上述永远都设置值作为相同的值。 (与目标值相同)

有没有同时更改这两种方法的方法?

+0

使用一个临时变量,这就是基本的 – Satpal

+0

为什么downvoted ??? –

+0

Javascript不是异步的! – theMarceloR

回答

3

我做一个jsfiddle给你:

<input id="txt-pickup" type="text"/> 
<input id="txt-destination" type="text"/> 
<input id="change" type="button" value="Swap"/> 

$(document).ready(function(){ 

    $("#change").on('click',function(){ 
     var pickup = $('#txt-pickup').val(); 
     $('#txt-pickup').val($('#txt-destination').val()); 
     $('#txt-destination').val(pickup); 


    }); 

}); 

JSFIDDLE

0

尝试

将值存储在变量中,而不是将其分配给另一个文本框。

var pickup = $('#txt-pickup'), 
    destination = $('#txt-destination'); 

var d_val = destination.val(); //cache value of destination 
destination.val(pickup.val()); //change value of destination to pickup.val() 
pickup.val(d_val); //change value of pickup to cached value of destination 
0

您可以任意这两个文本框的值存储在一个变量,然后将此变量设置为其他文本框的值:

var tmp = $('#txt-pickup').val(); 
pickup.val(destination.val()); 
destination.val(tmp); 

Fiddle Demo

0

尝试这个工作对我

<div> 
<input type="text" id="text1"/> 
<input type="text" id="text2"/> 
<input type="button" id="button" value="swap"/> 
</div> 

$(document).ready(function(){ 

    $("#button").click(function() 
    { 
    var a = $("#text1").val(); 
    $("#text1").val($("#text2").val()); 
    $("#text2").val(a); 

    }); 
}); 

</script>