Jquery - 选择框更改时URL未更新

时间:2016-08-25 15:58:59

标签: javascript jquery

我有一个Ajax查询,可根据下拉列表更改内容。查询按预期工作,但我无法使用select更新URL。如果我选择一个项目,内容将按原样显示,但不会更改URL。如果我手动输入URL,它会按原样显示内容。

我是否遗漏了某些内容以更改网址?

$(document).ready(function(){
if($('.ID :selected').val()) {$('.ID').show();} else {$('.ID').hide();}  ;

$('.Name').change(function(e){
e.preventDefault();     
   var myval = $('.Name:selected').val();
   var baseurl = window.location.origin+window.location.pathname+"?ID="+myval;
    $.ajax(baseurl)
        .done(function (response) {
            $('body').html(response);
            $('.ID').show();
        })
        .fail (function (xhr) {
            alert('Error: ' + xhr.responseText);
            $('.ID').hide();
    });    
 });    
});

编辑 - 我正在使用Silverstripe CMS。我有一个从DB

填充的SQL查询
$form = Form::create(
    $this,'MySearchForm',
    FieldList::create(
    DropdownField::create('ID',' ')
        ->setSource(TableName::get()->map('ID','MainName'))
        ->setemptyString('--Select Level --')
        ->addExtraClass('Name')
        ),

    FieldList::create());

    $form->setFormMethod('GET')
    ->setFormAction($this->Link()."#programme")
    ->disableSecurityToken()
    ->loadDataFrom($this->request->getVars());

    if($request->isAjax()) {
      $this->renderWith('Search');
    }

1 个答案:

答案 0 :(得分:0)

问题在于您的代码,在获取值语法时,我认为不需要将:selectedval()一起使用。您可以使用$('.ID').val()代替$('.ID :selected').val()

除了使用此:selected之外,您还应遵循以下语法$('.ID option:selected')

希望这可能对你有所帮助!!