在radiobutton change(jquery)上保存文本值

时间:2015-05-08 07:56:26

标签: javascript jquery

我们说我有8个单选按钮,当选择第8个时,会出现一个文本字段,您可以在其中键入内容。现在如果在文本字段中输入了某些内容并且检查了另一个单选按钮,我想保存文本但是清空文本字段,当他们再次重新检查第8个时,文本字段将填充先前输入的数据。

我尝试过以下方法:

referenceRadio.change(function() {
    otherTextValue = otherText.val();
    console.log(otherTextValue);
    if($(this).val()=="8") {
        otherText.show().prop('required', true);
        otherText.val(otherTextValue);
    } else {
        otherText.val('');
        otherText.hide().prop('required', false);
    }
});

如果需要任何其他信息,请向新人询问。

提前致谢!

更新

管理以使用以下代码:

referenceRadio.change(function() {
    console.log(otherText.val());
    if($(this).val()=="8") {
        otherText.show().prop('required', true);
        otherText.val(otherTextValue);
    } else {
        if(otherText.val() != '') {
            /* Only retrieve otherText.val when its not empty */
            otherTextValue = otherText.val();
        }
        otherText.val('');
        otherText.hide().prop('required', false);
    }
});

2 个答案:

答案 0 :(得分:1)

仔细考虑:

  1. 当前选择了8以外的单选按钮。
  2. 现在点击8,就会发生这种情况:

    otherTextValue = otherText.val();
    
  3. 现在otherTextValue""

  4. 如果在清空文本字段之前将它放在else子句中,它应该有效,并且你应该使该子句成为else if,这样只有在最后选择了8时才会执行它:

    referenceRadio.change(function() {
        if($(this).val() == "8") {
            otherText.show().prop('required', true);
            otherText.val(otherTextValue);
        } else if(lastRadioValue == "8") {
            otherTextValue = otherText.val();
            otherText.val('');
            otherText.hide().prop('required', false);
        }
        lastRadioValue = $(this).val();
    });
    

答案 1 :(得分:0)

如果只是第8台收音机,你可以试试这个:

var msgText='';
referenceRadio.change(function() {
    if($(this).val()=="8") {
        otherText.val(msgText).show().prop('required', true);
    } else {
        msgText=otherText.val();
        otherText.val('').hide().prop('required', false);
    }
});