Javascript 至于原因。每3到4页重新加载一次,值就在下拉列表之外,并像一堆不可读的文本一样重叠在一起。(见上图)我按下ctrl+shft+R来清除chromes缓存的css,它会返回到它的外观和功能。长篇大论,但确实如此。下面是我的ajax调用,其中包含一些注释,因此您可以看到我所做的。我相信可能会有更优雅、更直接的方法来实现这一点,但这是对我已有的改进。也许它会帮助其他人 function returnSymbols(cc) { var sendData = JSON.stringify({ 'ul': cc }); $.ajax({ url: '/Trucking/returnSymbols', type: 'POST', contentType: 'application/json', data: sendData, success: function (data) { var num = []; var num1 = []; //Push all returned values into num array $.each(data, function (index, value) { num.push(value); }); console.log(num); // console out to ensure values have been pushed //convert the string array into an int array for (var i in num) { num1[i] = parseInt(num[i]); } console.log(num1); //conosle out to ensure values have parsed correctly fillddl(num1); // send int array to fill drop down func }, error: function () { //alert('Error'); console.log('Error'); } }); }
然后使用函数将值实际发送到下拉列表。与我在其他方法中发现的非常相似Javascript 至于原因。每3到4页重新加载一次,值就在下拉列表之外,并像一堆不可读的文本一样重叠在一起。(见上图)我按下ctrl+shft+R来清除chromes缓存的css,它会返回到它的外观和功能。长篇大论,但确实如此。下面是我的ajax调用,其中包含一些注释,因此您可以看到我所做的。我相信可能会有更优雅、更直接的方法来实现这一点,但这是对我已有的改进。也许它会帮助其他人 function returnSymbols(cc) { var sendData = JSON.stringify({ 'ul': cc }); $.ajax({ url: '/Trucking/returnSymbols', type: 'POST', contentType: 'application/json', data: sendData, success: function (data) { var num = []; var num1 = []; //Push all returned values into num array $.each(data, function (index, value) { num.push(value); }); console.log(num); // console out to ensure values have been pushed //convert the string array into an int array for (var i in num) { num1[i] = parseInt(num[i]); } console.log(num1); //conosle out to ensure values have parsed correctly fillddl(num1); // send int array to fill drop down func }, error: function () { //alert('Error'); console.log('Error'); } }); },javascript,jquery,json,ajax,model-view-controller,Javascript,Jquery,Json,Ajax,Model View Controller,然后使用函数将值实际发送到下拉列表。与我在其他方法中发现的非常相似 function fillddl(sym) { var s = ''; for (var i = 0; i < sym.length; i++) { s += '<option value="' + sym[i] + '">' + sym[i] + '</option>'; } $(".ddlMcalSymbols").html(s); } 函数fillddl(s
function fillddl(sym)
{
var s = '';
for (var i = 0; i < sym.length; i++)
{
s += '<option value="' + sym[i] + '">' + sym[i] + '</option>';
}
$(".ddlMcalSymbols").html(s);
}
函数fillddl(sym)
{
var s='';
对于(变量i=0;i
请发布您的jsondata@Vishalmodi My Json数据是(61、62、65、66、70、71),只是数字。为什么要解析obj变量,然后显示数字?你不应该设置numbers=obj吗?如果我能看到你的警报文本,知道确切的JSON格式,那就容易多了。@RalphRitoch JsonParsing只是一个测试。把东西往墙上扔,看它是否粘在墙上。警报中返回的文本与注释上方的值相同。它返回61,62,65,66,70,71。。最后一个逗号会导致错误,但在警报中,这是返回的结果,我看到了它的样子。也许我最初尝试的方式实际上什么都没做。但我确实尝试过填写var数字。变量编号=[数据]或编号。推送(数据)。。这当然可能不起作用。我马上给你一个机会当我在某个迭代中遇到与预期不同的问题时,我会对每个变量进行console.log,看看哪个变量与预期不同:)我尝试了你的方法,但仍然不起作用。我将其分解并尝试var number=[];数字。推送(数据);$。每个(数字、函数(索引、值){console.log(值);});这在控制台中显示了所有值,但由于某种原因,同一数组无法填充下拉列表。这里涉及的因素太多,我看不到。。如果问题发生在JSFIDLE中,该怎么办?您可以通过从同一脚本调用ajax调用来伪造ajax调用,并提供一个示例字符串,说明您希望从服务器得到什么。你要么找出问题所在,要么给我所有的工具来解决问题,我就是这么做的。多次。我能看到什么有效,什么无效。我有一些非常奇怪的行为。我尝试了多种方法来解决这种行为,但我只能以一种四四方方/笨重的方式来解决。我制定了一个解决方案,我将在下面发布,以防其他人有同样的问题。我非常感谢你通过它进行的交流
var sendData = JSON.stringify({ 'ul': cc });
$.ajax({
url: '/Trucking/returnSymbols',
type: 'POST',
contentType: 'application/json',
data: sendData,
success: function (data) {
//alert('success');
console.log('success, yes');
alert(data);
var numbers = [];
numbers.push(data);
var option = '';
//Added two for loops to show what I've tried.
for (var i = 0; i < numbers.length; i++) {
option += '<option value="' + numbers[i] + '">' + numbers[i] + '</option><br>';
}
$('#ddlMcalSymbols').append(option);
//Tried this option to fill ddl
for (var i = 0; i < numbers.length; i++) {
option = '<option value="' + numbers[i] + '">' + numbers[i] + '</option><br>';
$('#ddlMcalSymbols').append(option);
}
//This Jquery foreach only returns one value to the ddl
$.each(numbers, function (i, value) {
console.log(value);
option += '<option value="' + value[i] + '">' + value[i] + '</option>';
});
$('#ddlMcalSymbols').append(option);
},
error: function () {
//alert('Error');
console.log('Error');
}
});
[HttpPost]
public ActionResult getCicitesAction(int provinceId)
{
var cities = db.cities.Where(a => a.provinceId == provinceId).Select(a => "<option value='" + a.cityId + "'>" + a.cityName + "'</option>'";
return Content(String.Join("", cities));
}
$("province_dll").change(function(){
$.ajax({
url: 'getCitiesController/getCitiesAction',
type: 'post',
data: {
provinceId: provinceIdVar
}
}).done(function(response){
$("cities_dll").html(response);
});
var listEl=$('#ddlMcalSymbols');
for (var key in obj) {
jQuery('<option value="' + obj[key] + '">' + obj[key] + '</option>').appendTo(listEl);
}
function returnSymbols(cc) {
var sendData = JSON.stringify({ 'ul': cc });
$.ajax({
url: '/Trucking/returnSymbols',
type: 'POST',
contentType: 'application/json',
data: sendData,
success: function (data) {
var num = [];
var num1 = [];
//Push all returned values into num array
$.each(data, function (index, value) {
num.push(value);
});
console.log(num); // console out to ensure values have been pushed
//convert the string array into an int array
for (var i in num) {
num1[i] = parseInt(num[i]);
}
console.log(num1); //conosle out to ensure values have parsed correctly
fillddl(num1); // send int array to fill drop down func
},
error: function () {
//alert('Error');
console.log('Error');
}
});
}
function fillddl(sym)
{
var s = '';
for (var i = 0; i < sym.length; i++)
{
s += '<option value="' + sym[i] + '">' + sym[i] + '</option>';
}
$(".ddlMcalSymbols").html(s);
}