2

我有一些脚本,我想在更改单选按钮时更新 div。此外,我将所选单选的值存储在 sessionStorage 中,以便在再次访问页面时保持选中相应的单选按钮。

我的问题是,如果我使用我的 sessionStorage 脚本和我的更新脚本,更新脚本不再工作,只是保留存储在会话中的值。

我的意思是这一行:

inhalt_time = $("input[type='radio'][name='chooseTime']:checked").val();

如果我删除该行:

$("input[type='radio'][name='chooseTime']").val(chosen_time).prop('checked', true);

更新脚本再次工作。

有谁知道如何避免这种冲突?

这是我的html:

<div class="chooseTime">
   Bitte w&auml;hlen Sie ihr gew&uuml;nschte Lieferzeit.
   <label class="radio">
      <input type="radio" name="chooseTime" value="06:00 Uhr - 10:00 Uhr" />
      06:00 Uhr - 10:00 Uhr
   </label>
   <label class="radio">
      <input type="radio" name="chooseTime" value="10:00 Uhr - 14:00 Uhr" />
      10:00 Uhr - 14:00 Uhr
   </label>
   <label class="radio">
      <input type="radio" name="chooseTime" value="15:00 Uhr - 17:00 Uhr" />
      15:00 Uhr - 17:00 Uhr
   </label>
</div>

我的更新jQuery:

$('.chooseTime').on('change', 'input[type=radio]', function() {
     updateAnzeige();
});

function updateAnzeige() {
    inhalt_time = $("input[type='radio'][name='chooseTime']:checked").val();
    if(inhalt_time === undefined) {
        inhalt_time = "<span class='red'>Bitte wählen Sie eine gewünschte Lieferuhrzeit aus.</span>";
    }
    $('.anzeige').html(inhalt_time);            
}

我的 sessionStorage 的 jquery:

if(sessionStorage.getItem("lieferzeitpunktart") == "Custom") {
    chosen_time = sessionStorage.getItem("lieferzeitpunkt_time");
    $("input[type='radio'][name='chooseTime']").val(chosen_time).prop('checked', true);
}
4

1 回答 1

0

啊!!答案很简单。

通过使用.val(chosen_time)in$("input[type='radio'][name='chooseTime']").val(chosen_time).prop('checked', true);我给了每个单选按钮相同的值,而不是使用我正在寻找的值检查单选按钮..

正确的代码行当然是:

$("input[type='radio'][name=chooseTime][value='"+chosen_time+"']").attr('checked', true);
于 2013-10-10T19:56:49.323 回答