jqueryjavascript问题

jqueryjavascript问题,javascript,jquery,load,get,split,Javascript,Jquery,Load,Get,Split,请你看一看,告诉我为什么不行,我想不出来。问题在于 $("#item_name").val(item_name); $("#amount").val(course_price); 这应该是添加信息到2个隐藏的输入( ) 但他们都是一片空白 另外,course_name.php?courseID=1的值是course name,500 完整的Javascript <script> $(document).ready(function() { url = "date_

请你看一看,告诉我为什么不行,我想不出来。问题在于

$("#item_name").val(item_name);
$("#amount").val(course_price);
这应该是添加信息到2个隐藏的输入(


) 但他们都是一片空白

另外,course_name.php?courseID=1的值是course name,500

完整的Javascript

<script>

      $(document).ready(function() {
url = "date_range.php?courseID="+$('#course_name').val();
  $("#dates").load(url)
  url = "course_name.php?courseID="+$('#course_name').val();
   var course_details;
$.get(url, function(data){
    course_details= data;
});
   split_course_details = course_details.split(',');
   course_name=split_course_details[0];
   course_price=split_course_details[1];
   course_date=$("#date_range").val();
   item_name=course_name+' - '+course_date;
   $("#item_name").val(item_name);
    $("#amount").val(course_price);


      });


$('#course_name').change(function() {
    url = "date_range.php?courseID="+$('#course_name').val();
  $("#dates").load(url)
  url = "course_name.php?courseID="+$('#course_name').val();
  var course_details;
$.get(url, function(data){
    course_details= data;
});
   split_course_details = course_details.split(',');
   course_name=split_course_details[0];
   course_price=split_course_details[1];
   course_date=$("#date_range").val();
   item_name=course_name+' - '+course_date;
   $("#item_name").val(item_name);
    $("#amount").val(course_price);
});

</script>

$(文档).ready(函数(){
url=“date_range.php?courseID=”+$(“#课程名称”).val();
$(“#日期”).load(url)
url=“course_name.php?courseID=“+$('#course_name').val();
var课程详情;
$.get(url、函数(数据){
课程详情=数据;
});
拆分课程详情=课程详情。拆分(',');
课程名称=拆分课程详细信息[0];
课程价格=分割课程详情[1];
课程日期=$(“#日期范围”).val();
项目名称=课程名称+'-'+课程日期;
$(“#项目名称”).val(项目名称);
$(“金额”).val(课程价格);
});
$('#课程名称')。更改(函数(){
url=“date_range.php?courseID=”+$(“#课程名称”).val();
$(“#日期”).load(url)
url=“course_name.php?courseID=“+$('#course_name').val();
var课程详情;
$.get(url、函数(数据){
课程详情=数据;
});
拆分课程详情=课程详情。拆分(',');
课程名称=拆分课程详细信息[0];
课程价格=分割课程详情[1];
课程日期=$(“#日期范围”).val();
项目名称=课程名称+'-'+课程日期;
$(“#项目名称”).val(项目名称);
$(“金额”).val(课程价格);
});

将计算放在
$.get()的回调函数中,如下所示:-

$(document).ready(function() {
    url = "date_range.php?courseID=" + $('#course_name').val();
    $("#dates").load(url)
    url = "course_name.php?courseID=" + $('#course_name').val();
    var course_details;
    $.get(url, function(data) {
        course_details = data;
        split_course_details = course_details.split(',');
        course_name = split_course_details[0];
        course_price = split_course_details[1];
        course_date = $("#date_range").val();
        item_name = course_name + ' - ' + course_date;
        $("#item_name").val(item_name);
        $("#amount").val(course_price);
    });

});

$('#course_name').change(function() {
    url = "date_range.php?courseID=" + $('#course_name').val();
    $("#dates").load(url)
    url = "course_name.php?courseID=" + $('#course_name').val();
    var course_details;
    $.get(url, function(data) {
        course_details = data;
        split_course_details = course_details.split(',');
        course_name = split_course_details[0];
        course_price = split_course_details[1];
        course_date = $("#date_range").val();
        item_name = course_name + ' - ' + course_date;
        $("#item_name").val(item_name);
        $("#amount").val(course_price);
    });
});

看起来您对不同的数据使用了两次url变量。。。 尝试使用其他变量。

尝试以下操作:

$(function() {

    var cname = $('#course_name'),
        dates = $('#dates'),
        iname = $('#item_name'),
        amount = $('#amount'),
        drange = $('#date_range');

    cname.change(function() {    
        dates.load( 'date_range.php?courseID=' + this.value );

        $.get('course_name.php?courseID=' + this.value, function(data) {
            data = data.split(',');    
            iname.val( data[0] + ' - ' + drange.val() );
            amount.val( data[1] );
        });
    }).change();

});

2个相同ID的隐藏输入?ID应该是唯一的,毫无疑问它会失败。我用相关的ID写错了。get在默认情况下是异步的,因此返回的任何数据都需要在成功回调中处理。实际上,这解决了问题。我没有正确地测试它。@limc注意到您有两次相同的代码-一次在ready回调中,一次在change回调中。应对此进行优化,以消除冗余。只需在页面加载时触发change事件(在分配change回调之后),就可以做到这一点,如:
elem.change(callbackfunction.change()
@limc同样,变量没有声明,因此它们成为隐式全局变量。您必须使用
var
来声明它们以避免这种情况。@Tommy我很高兴听到
:)
$(function() {

    var cname = $('#course_name'),
        dates = $('#dates'),
        iname = $('#item_name'),
        amount = $('#amount'),
        drange = $('#date_range');

    cname.change(function() {    
        dates.load( 'date_range.php?courseID=' + this.value );

        $.get('course_name.php?courseID=' + this.value, function(data) {
            data = data.split(',');    
            iname.val( data[0] + ' - ' + drange.val() );
            amount.val( data[1] );
        });
    }).change();

});