我有一个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');
}
答案 0 :(得分:0)
问题在于您的代码,在获取值语法时,我认为不需要将:selected
与val()
一起使用。您可以使用$('.ID').val()
代替$('.ID :selected').val()
除了使用此:selected
之外,您还应遵循以下语法$('.ID option:selected')
希望这可能对你有所帮助!!