При изменении события не сработает список выбора
Кажется, я не могу запустить jQuery и событие change для списка выбора county_id. Я пробовал несколько фрагментов кода, и ни один из них не сработает при изменении. Есть идеи?
HTML:
<select id="county_id" name="county_id">
<option value=""></option>
<option value="1">Somewhere</option>
<option value="2">Somewhere else</option>
</select>
<select id="vice_county_id" name="vice_county_id"></select>
JS:
$(function(ready) {
$("#county_id").change(
function() {
$("#vice_county_id").html("");
var co_id = $("#county_id > option[@selected]").attr("value");
if (co_id != 0) {
$.getJSON('./vice_county_web_service.php?co_id=' + co_id,
function(data) {
$.each(data, function() {
$("#vice_county_id").append(
$("<option></option>").val(
this['value']).html(
this['name']));
});
});
}
});
});
6 ответов
Событие запускается, но эта строка кода не работает:
var co_id = $("#county_id > option[@selected]").attr("value");
... потому что это неверный селектор. В консоли JavaScript вашего браузера вы должны увидеть Syntax error, unrecognized expression: [@selected]
,
JQuery с радостью принесет вам пользу, просто используйте val
:
var co_id = $("#county_id").val();
Пытаться:
$(document).ready(function(){
$("#county_id").change(function() {
$("#vice_county_id").html("");
var co_id = $(this).val();
if(county_id != 0) {
$.getJSON('./vice_county_web_service.php?co_id=' + co_id,function(data) {
$.each(data, function() {
$("#vice_county_id").append($("<option></option>").val(this['value']).html(this['name']));
});
});
}
});
})
Изменить `var co_id = $("#county_id > option[@selected]"). Attr (" value "); ' to 'var co_id = $ ("# county_id> option: selected"). attr ("value");'
Достаточно, чтобы получить значение поля выбора
var co_id = $("#county_id").val();
Вы должны использовать на ()
$('#county_id').on('change', function() {
//....
var co_id = $("#county_id").val();
});
Ваш код работает нормально означает, что событие изменения обрабатывается кодом должным образом. Пожалуйста, перейдите по этой ссылке
$(function(ready){
$("#county_id").change(function() {
$("#vice_county_id").html("test");
var co_id= $("#county_id").attr("value");
alert('Value : ' +co_id);
if(co_id != 0) {
$.getJSON('./vice_county_web_service.php?co_id=' + co_id,function(data) {
$.each(data, function() {
$("#vice_county_id").append($("<option></option>").val(this['value']).html(this['name']));
});
});
}
});
});
Изменить только эту строку,
var co_id = $ ("# county_id"). attr ("value");
Просто проверьте, работает ли ваш Ajax-вызов или нет
<select id="county_id" name="county_id" onchange="ChangeCountry();">
function ChangeCountry()
{
var _countryId = $('#county_id').val();
}