【问题标题】:JQuery set default is value is passed using url如果使用 url 传递值,则 JQuery 设置默认值
【发布时间】:2013-04-12 11:50:36
【问题描述】:

这是我上一个问题的延续 JQuery next class 感谢所有帮助我解决这个问题的人。

现在我在设置默认值时遇到问题。有 2 个部分。

第一部分: 假设有一个链接可以加载默认 item1、item2 和 item2 我所做的是通过这样的 URL 的链接传递值

index.php?item1=3

现在我如何分别检查和启用? 如果没有通过,我已经使用 PHP 检查并设置禁用,当通过它时将它设置为禁用。但现在的问题是第 2 个未传递值的项目被禁用(item1 已启用并设置为默认传递的 id 和 item2,item3 被禁用)并启用 item2 我重新选择了 item1。

因为,根据 jquery item2 只有在 item1 更改时才会解锁。如何覆盖它?

第二部分:类似于第一部分,但对于某些页面 item1 在代码 () 中设置为默认值,并且没有任何内容通过 url 传递。问题又是一样的。

我知道两者都有类似的问题,只是想知道是否有一个简单的解决方案,而不是将所有 part2 更改为 part1,即通过 url 传递 item1(我必须手动进入每个页面并更改:()。

【问题讨论】:

    标签: php javascript jquery html


    【解决方案1】:

    您需要通过This 链接按名称检查参数的值。并检查值是否为空。并且对非空值执行操作。

    function getParameterByName(name)
    {
      name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
      var regexS = "[\\?&]" + name + "=([^&#]*)";
      var regex = new RegExp(regexS);
      var results = regex.exec(window.location.search);
      if(results == null)
          return "";
      else
          return decodeURIComponent(results[1].replace(/\+/g, " "));
    }
    

    这样你就可以调用函数来获取值了:

     var Value = getParameterByName("Item1");
    

    【讨论】:

      【解决方案2】:

      您可以使用函数来解析来自 jQuery 的查询字符串。

      QueryString(取自SO answer

      (function($) {
          $.qs = (function(a) {
              if (a == "") return {};
              var b = {};
              for (var i = 0; i < a.length; ++i)
              {
                  var p=a[i].split('=');
                  if (p.length != 2) continue;
                  b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
              }
              return b;
          })(window.location.search.substr(1).split('&'))
      })(jQuery);
      

      Javascript

      var item1 = $.qs('item1');
      
      if (item1) {
          // do something...
      } else {
          // set a default value...
      }
      

      【讨论】:

        猜你喜欢
        • 2017-11-26
        • 2012-07-22
        • 1970-01-01
        • 2017-12-05
        • 2010-10-20
        • 1970-01-01
        • 2016-09-01
        • 2015-07-26
        • 2020-03-19
        相关资源
        最近更新 更多