我有几个选择框,并且每个选择框的数据都是根据先前的选择框选项返回的。
以前我有3个选择框,但一切正常,现在我需要添加额外的选择框,那些旧的选择框仍能正常工作,但是这个新选择框返回TypeError: e.nodeName is undefined
也许这张图片可以解释得更好
Javascript
为了使代码更短,更简洁,我删除了不必要的部分并评论了每个部分的作用。
当前问题是function substricsfunction(){
<script>
$(document).ready(function() {
$('#province').on('change', function() {
var provinceID = $(this).val();
//ajax cal to return city names when state name changes (no. 2 image above)
});
});
jQuery( document ).ready( function( $ ) {
$('body').on('change', '#city', function(e){
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }
});
var cityID = $(this).val();
var weight = ["{{$totalWeight}}"];
if(cityID) {
$.ajax({
url: '{{ url('rajaajax') }}/'+weight+'/'+encodeURI(cityID),
type: "GET",
dataType: "json",
success:function(data) {
//return data in select-box (no.4 image above)
}
});
//custom function
myfunction();
substricsfunction();
}else{
$('select[name="postchoose"]').empty().append("<option value='' selected>Pilih</option>");
}
});
});
function myfunction(){
//return some more data in select-box (no.4 image above)
};
//newpart ( we work on this now )
function substricsfunction(){
$.ajaxSetup({
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') }
});
var hfg = $(this).val();
if(hfg) {
$.ajax({
url: '{{ url('rajaajaxsubdistrict') }}/'+encodeURI(hfg),
type: "GET",
dataType: "json",
success:function(data) {
console.log(data);
//
$('select[name="subdistrict"]').empty().append("<option value='' selected>Pilih</option>");
$.each(data.data, function(key, value) {
$.each(value.data, function(key2, value2) {
$('select[name="subdistrict"]').append('<option id="subdistrict" class="form-control" value="'+ value2.subdistrict_id +'">'+ value2.subdistrict_name +'</option>');
});
});
//
}
});
}
};
//newpart
</script>
URL {{ url('rajaajaxsubdistrict') }}/'+encodeURI(hfg)
等于site.trg/rajaajaxsubdistrict/27
的数据返回为
所以我的错误TypeError: e.nodeName is undefined
并非与后端有关,而与该功能有关的所有错误都属于
有什么主意吗?
答案 0 :(得分:0)
我将var hfg = $(this).val();
更改为var hfg = $("#city option:selected").val();
并解决了问题