在这里,我有一个下拉列表,其中包含3个值,如0,1,2和5个文本框。
http://jsfiddle.net/ssthil/j4JZX/3/
当我更改下拉值,从信用卡到购买卡或购买卡到信用卡时,我只需要清除输入的数据。不是从0到1或0到2。
添加更多内容:
我有3个下拉值为0,1和3.还有5个文本框。默认情况下,下拉值为0,现在我输入该文本框的数据,然后将下拉值0更改为1或2.此时间不应再发生这些文本框值的更改。如果我选择从1到2或2到1的下拉值,则此时间数据应清除。
任何人都可以帮忙解决这个问题吗?
答案 0 :(得分:1)
保存以前选择的值,将其与当前选定的值进行比较,如果有转化2 -> 1
或1 -> 2
,请清理文本框:
$(function(){
var previousValue = $("select").val();
$('select').change(function() {
var currentValue = $(this).val();
if (previousValue == 2 && currentValue == 1
|| previousValue == 1 && currentValue == 2) {
$("input.textbox").val("");
}
previousValue = currentValue;
});
})
答案 1 :(得分:0)
答案 2 :(得分:0)
如果您有select
元素来选择付款类型,则只需在值更改时重置文本框类的值即可。您可以使用focus
回调来保存以前选择的值。一旦开始做出选择,删除默认选择也可能是一个好主意。为什么有人需要选择 -Select - 作为付款方式?
var previous;
$("select").focus(function () {
previous = this.value; // Store the value before change.
}).change(function() {
$("select option[value='-1']").remove(); // Remove default selection.
if(previous != -1) { // If the last value wasn't -1 ('-Select-')
$(".textbox").val(""); // Then clear all textboxes.
}
});
答案 3 :(得分:0)
您需要保存最后一个值以跟踪@Joao建议的更改。您可以使用select元素的属性来存储最后选择的值,而不是使用全局变量。像这样:
$(function(){
$("select").attr('rel', $("select").val());
$('select').change(function() {
previousValue = $("select").attr('rel');
var currentValue = $(this).val();
if (previousValue != 0) {
$("input.textbox").val("");
}
$("select").attr('rel', currentValue);
});
})