在页面重定向后克隆选定的下拉值

时间:2015-02-13 14:04:33

标签: javascript jquery html

我正在学习jquery ...这是我的问题,我需要克隆从网页1中选择的值并将网页1重定向到网页2 ...

我在这里找到了一些代码,并尝试将它们组合在一起......但是下面的代码只会重定向,并且不会根据网页1中的选定值将下拉值克隆到网页2 ....

function moveTo(optionValue) {
    if(optionValue=="") return false;
        window.location='.htm'+optionValue;
    } 
    var $orginalDiv = $('#container');
    var $clonedDiv = $orginalDiv.clone();

    //get original selects into a jq object
    var $originalSelects = $orginalDiv.find('select');

    $clonedDiv.find('select').each(function(index, item) {

        //set new select to value of old select
        $(item).val( $originalSelects.eq(index).val() );

    });

    $clonedDiv.appendTo('clonedItem')

WebPage1下拉列表

<div id="container">
    <p>Priority</p>
    <select name="priority" id="drop1" size="1" onchange="moveTo(this.options[this.selectedIndex].value);">
        <option value="form2.html">Low</option>
        <option value="form2.html">Normal</option>
        <option value="form2.html">High</option>
       <option value="form2.html">Emergency</option>
    </select>
</div>

WebPage2下拉列表

<div id='clonedItem'>
    <p>Priority</p>
    <select name="priority" id="drop2" size="1">
        <option value="Low">Low</option>
        <option value="Normal">Normal</option>
        <option value="High">High</option>
        <option value="Emergency">Emergency</option>
    </select>
</div>

请告知如何解决此问题,或者除了使用jquery之外还有其他方法...谢谢。

1 个答案:

答案 0 :(得分:0)

由于页面刷新,您无法直接存储变量js。有不同的方法来实现你想要的。如果我理解正确,两个选项是相同的,所以他们有相同的选项。为此,我会说“GET”参数是最有用的。在重定向功能中,只需将选定选项的索引作为GET添加到重定向URL:

function moveTo(optionValue) {
  if(optionValue=="") return false;
    window.location='http://newURL.com'+"?index="+optionValue;
} 

然后你只需要在新页面上使用js函数,它可以过滤掉位置以外的GET参数:

function parse(val) {
  var result = "Not found", 
  tmp = [];
  location.search.substr(1).split("&").forEach(function (item) {
    tmp = item.split("=");
    if (tmp[0] === val) result = decodeURIComponent(tmp[1]);
  });
  return result;
}

(请参阅this aswer了解src)

然后最后在新页面上调用pageload上的parse函数并使选项处于活动状态:

var index = parse(window.location);
$('#drop2 option').eq(index[0]).addClass('selected');