如何在页面打开时选择一个选项?

时间:2012-02-11 23:56:52

标签: jquery select

我出于某种原因我没有得到这个。我尝试了各种使用引号等方法,但到目前为止没有任何工作。

我传递给网页的网址是:

http://dev.bizzocall.com/indx-signup.php?plan= '#的Flexi' 我也试过了

http://dev.bizzocall.com/indx-signup.php?plan=#Flexi
http://dev.bizzocall.com/indx-signup.php?plan=Flexi
http://dev.bizzocall.com/indx-signup.php?plan='Flexi'

(并以不同方式编写switch语句以容纳差异......

我错过了什么?

(function($) {
    $.QueryString = (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);

$(document).ready(function() {

    $myplan = $.QueryString["plan"];     
      switch ($myplan) {
              case "#Flexi": 
                  $aSel="#Flexi";
                  break;
              case "#Grow": 
                  $aSel="#Grow";
                  break;
              case "#Excel": 
                    $aSel="#Excel";
                    break;
              case "#Max": 
                  $aSel="#Max";
                  break;
          }
      ($aSel).addAttr('selected', true)
          .siblings('option')
       .removeAttr('selected');

});

2 个答案:

答案 0 :(得分:0)

  

更新2/11 6:51P

Uncaught TypeError: Object $aSel has no method 'addAttr'

因为$ aSel =类似“#IDName”而不是实际的jQuery对象。要成为一个jQuery对象,它需要更像$("EleIDNameofExistingEle")$("<option />").attr({ id: 'EleIDName' });

  

OLD

Uncaught ReferenceError: $aSel is not defined

首先尝试将$ aSel建立为变量。

此外,Codeigniter for PHP可以很好地使用jQuery,并且可以将变量数据传递到页面,就像$this->load->view('somePage', array( $data1=>'aString', $data2=>json_encode(array( 'item1'=>'blah', 'item2'=>'blaj' )));一样简单,然后在页面上调用就像var aString = <?= $data1; ?>, aObj = <?= $data2; ?>;

一样简单

CI现在有一个很棒的新库,可以直接在服务器端的页面上使用jQuery

答案 1 :(得分:0)

如果你想在页面加载时设置一个选项,最好在服务器端进行;如果用户已禁用JS,则不会设置该选项。你说你在评论中使用PHP,所以我将举例说明。

对于这些情况,我喜欢使用一系列选项来打印<select>框,有点像这样:

$options = array('value' => 'Text', '1' => 'Choice 1', 'foo' => 'Choice foo');
$selectedOption = 'foo';    // What we want to be selected (value)

echo '<select name="whatever">';

// Loop through options
foreach($options as $value => $text) {
    // If this is the selected value, add the selected attribute
    if($value == $selectedOption) {
        echo '<option selected="selected" value="' . $value . '">' . $text . '</option>';
    else {
        echo '<optoin value="' . $value . '">' . $text . '</option>';
    }
}

echo '</select>';    // Close select tag

上面的代码循环遍历值数组。当它在数组中找到与$selectedOption匹配的键时,它会为<option> selected="selected"属性提供该值。这种方法可以节省大量用HTML填充大量HTML的麻烦。我通常将这段代码放在一个函数中,并将它传递给一个关联数组和一个选定的选项,但这完全取决于你。

相关问题