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();
});