【问题标题】:How do I get the option to return to a ID after alert “cancel”?如何在警报“取消”后获得返回 ID 的选项?
【发布时间】:2017-12-22 15:54:20
【问题描述】:

如何在加载页面和“取消”警报后获得返回目标值 ID 的选项?还要选择一个值后的前一个当前值吗?

如果我在选择“取消”警报之前选择了一个值,现在它会选择“当前值”。

但是,如果我加载一个新页面,它也不会转到选定的“当前值”或目标值 ID。它将进入无用的“禁用”选项。我该如何解决这个问题?

如果我选择在加载页面后直接“取消”警报,如何使其转到我选择的目标值 ID (id="ger") 选项?

JavaScript

<script type="text/javascript">
$(function(){
    $('#optFu').change(function() {
        var selected = $(this).val();

            if (selected == 'auto') {
            if (!confirm('The ´´Automatic system´´ is limited. \n Are you sure you want to use this?')) {
                $(this).val($.data(this, 'current'));
                return false;
                } 
            }
        $.data(this, 'current', $(this).val());
    });
});
</script>

HTML

<select name="LangFu" id="optFu">
<option value="" disabled>Common Languages:</option>
<option value="zh-CN">Chinese (Simplified)</option>
<option selected value="en">English</option>
<option value="fr">French</option>
<option value="de" id="ger">German</option>
<option value="ru">Russian</option>
<option value="es">Spanish</option>
<option value="" disabled>&#8212;</option>
<option value="auto" data-confirm=" The ´´Automatic Language Detection´´ does not detect laguadges in frames / sandbox. Are you sure you want to select this option? ">Auto Detect</option>
</select>

【问题讨论】:

    标签: javascript jquery html options target


    【解决方案1】:

    试试这个

    $(function() {
      $('#optFu').val("de");
      $('#optFu').change(function() {
        var selected = $(this).val();
        if (selected == 'auto') {
          if (!confirm('The ´´Automatic system´´ is limited. \n Are you sure you want to use this?')) {
            $(this).val("de");
            return false;
          }
        }
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <select name="LangFu" id="optFu">
      <option value="" disabled>Common Languages:</option>
      <option value="zh-CN">Chinese (Simplified)</option>
      <option selected value="en">English</option>
      <option value="fr">French</option>
      <option value="de">German</option>
      <option value="ru">Russian</option>
      <option value="es">Spanish</option>
      <option value="" disabled>&#8212;</option>
      <option value="auto" data-confirm=" The ´´Automatic Language Detection´´ does not detect laguadges in frames / sandbox. Are you sure you want to select this option? ">Auto Detect</option>
    </select>

    【讨论】:

    • 你的作品和我的一样。如果页面是新加载的,如果取消,它仍然会选择禁用选项。只有当我首先选择一个选项然后选择自动并取消时,它才能正常工作。然后它工作。换句话说,它的工作原理和我的完全一样。没有区别,新加载页面的问题依然存在。
    • 经过长时间的摆弄,我自己找到了答案。解决方案很简单,当我或您的解决方案选择 amty 值时,我需要添加一个自动系统来选择 id="ger"。我需要添加的代码是 $(document).ready(function () { $("#opt").change(function () { if ($(this).val() == "") { $("#ger").prop('selected', true); } else { $("#ger").prop('selected', false); } }) });
    • 看看我给自己的答案,在摆弄了很多之后,试图找到一个解决方案。额外的代码解决了我和您的具有相同问题的解决方案的这个问题。但是因为我不能给自己一个“答案 V”,所以我给了你,所以问题是用一个答案来结束,因为你的代码有效,它只有 50% 的工作方式与我的第一个问题代码完全一样.
    • 很抱歉,如果我之前没有真正理解您的问题,我更新了我的答案以满足您的要求。
    • 看看测试我的解决方案,你会发现你的代码做的事情和我的不一样。你的这个新代码仍然有 50% 正确,但反之亦然。因为如果页面是新加载的,它需要像现在一样工作。但是,如果您在选择 Auto 选项之前在框中选择了另一个选项,那么它应该像旧代码一样工作。现在你明白它应该如何工作了吗?测试我的代码解决方案,你就会明白我的意思了。
    【解决方案2】:

    经过长时间的摆弄,我自己找到了答案。但我会把它留在网上,让可能有同样问题的其他人看到答案。

    我需要做的是添加:

    $(document).ready(function () {
            $("#opt").change(function () {
                if ($(this).val() == "") {
                    $("#ger").prop('selected', true);
                }
                else {
                    $("#ger").prop('selected', false);
                }
            })
        });
    

    通过这样做告诉系统,如果选择了一个空值,那么将自动选择 id="ger"。这样我就解决了问题。

    这就是整个代码的样子

    JavaScript

    <script src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
    <script type="text/javascript">
    $(function(){
        $('#optFu').change(function() {
            var selected = $(this).val();
    
                if (selected == 'auto') {
                if (!confirm('The ´´Automatic system´´ is limited. \n Are you sure you want to use this?')) {
                    $(this).val($.data(this, 'current'));
                    return false;
                    } 
                }
            $.data(this, 'current', $(this).val());
        });
    });
    
    $(document).ready(function () {
            $("#opt").change(function () {
                if ($(this).val() == "") {
                    $("#ger").prop('selected', true);
                }
                else {
                    $("#ger").prop('selected', false);
                }
            })
        });
    </script>
    

    HTML

    <select name="LangFu" id="optFu">
    <option value="" disabled>Common Languages:</option>
    <option value="zh-CN">Chinese (Simplified)</option>
    <option selected value="en">English</option>
    <option value="fr">French</option>
    <option value="de" id="ger">German</option>
    <option value="ru">Russian</option>
    <option value="es">Spanish</option>
    <option value="" disabled>&#8212;</option>
    <option value="auto" data-confirm=" The ´´Automatic Language Detection´´ does not detect laguadges in frames / sandbox. Are you sure you want to select this option? ">Auto Detect</option>
    </select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 2010-09-18
      • 2014-02-21
      • 2021-08-30
      • 1970-01-01
      相关资源
      最近更新 更多