0

这是我上一个关于 JQuery 下一堂课的问题的延续 感谢所有帮助我解决这个问题的人。

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

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

index.php?item1=3

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

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

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

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

4

2 回答 2

0

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

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");
于 2013-04-19T06:41:48.287 回答
0

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

QueryString(取自这个SO 答案

(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...
}
于 2013-04-19T06:44:05.523 回答