0

在这里,我有一个下拉菜单,其中包含 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 的下拉值,那么这次数据应该是清晰的。

任何人都可以帮助解决这个问题吗?

4

4 回答 4

1

保存先前选择的值,将其与当前选择的值进行比较,如果有过渡2 -> 11 -> 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;
     });
 })​

小提琴

于 2012-08-20T11:28:48.007 回答
0

我已经更新了你的小提琴:

http://jsfiddle.net/j4JZX/5/

我所做的是清除所有关于更改 html 选择更改事件的文本框

请看一看。

于 2012-08-20T11:27:05.377 回答
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.
    }
});
于 2012-08-20T11:27:49.823 回答
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);
 });
})​
于 2012-08-20T11:35:02.180 回答