所以我的情况是我有一个selectbox,它在.change事件上调用另一个脚本的jquery .post。
我想知道无论如何,如果发生某事或我的.post事件失败,我是否可以将选择的选项恢复为原始默认值?
嗨ppl,对不起。
这是javascript代码。我已经对它做了一些修改。我正试图让第二行工作,因为这些代码由于一些错误而无法正常工作(由于不知道第二行是什么)。我的选择框是列表的一部分,因此我无法将其作为唯一ID,并且要记住用户选择的框,我需要使用$(this)。
$('.order_stateselect').click(function(){
var val=$(this).find(":selected").val();
$(this).change(function(){
if(confirm('Confirm Order Status Change?')){
var conduct_status_chge=$.post('/seller/helpers/order_status_change.php',{order_item_id:$(this).parent('td').siblings('.order_item_id').text(),order_item_status:$(this).find(':selected').val()},function(data){
alert(data);
})
.error(function() { alert("error"); })
}
});
});
答案 0 :(得分:2)
没有代码很难分辨,但我会尝试
$("#selectbox").data('origValue', $("#selectbox").val());
$("#selectbox").on('change', function () {
$.post(...).done(function () {
// other stuff
$("#selectbox").data('origValue', $("#selectbox").val());
}).fail(function () {
$("#selectbox").val($("#selectbox").data('origValue'));
});
});
答案 1 :(得分:0)
使用类似的东西
var value=$("#selectbox").val();
$.ajax({
type:post,
url:"something.com",
success:function(){
},error:function(){
$("#selectbox").val(value);
}
})
答案 2 :(得分:0)
$('select').val('defaultvalhere');
答案 3 :(得分:0)
您可以使用此选项来选择不关于默认值的第一个选项:
$('#selectId option:eq(0)').attr('selected',true);
答案 4 :(得分:0)
您可以简单地使用全局变量来保存之前选择的选项。保存后,您可以在error
上使用它,就像这样
<script type="text/javascript">
this.previousVal = 0;
function changeHandler(selectBox)
{
$.ajax({
type:post,
url:"URL",
success:function(){
//ur code
this.previousVal=selectBox.selectedIndex;
},error:function(){
//use previousVal and set the value back to the previous value
}
})
}
</script>
<select id="changeLang" name="changeLang" onchange="changeHandler(this)"></select>