Да, просто замени весь шаблон на этот:
|

15.06.2014, 09:45
|
|
Новичок на форуме
|
|
Регистрация: 15.06.2014
Сообщений: 5
|
|
|
Передача строкового параметра функции в виде цифр
Здравствуйте, столкнулся с проблемой типов. Много лет пишу на VB.net, C# в этих языках все просто
|
Код:
|
Function main(srt as string) as string
return "Входной параметр: " & str
end function
main("0123")
//Результат Входной параметр: 0123 |
написал на JS:
var mystr='0123';
var function main (str) {
alert(str);
}
main(mystr);
//результат 123
Просто катастрофа ...
Как бороться с типами?
|
|

15.06.2014, 09:51
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,154
|
|
var mystr = '0123';
function main (str) {
alert(str);
}
main(mystr);
|
|

15.06.2014, 10:48
|
|
Новичок на форуме
|
|
Регистрация: 15.06.2014
Сообщений: 5
|
|
вот часть кода:
// data[i].ID '0123'
'<input id="' + data[i].Name + '" type="button" onclick="LoadTrackSelectedCar(' + data[i].ID + ')" value="load" />'
var LoadTrackSelectedCar = function (ID) {
$.post('HandlerTrack.ashx?CarID=' + ID + '&BS=451264' + '&BF=0', '', function (response) {
eval(response);
alert(data);
});
};
Вот это не работает ...
|
|

15.06.2014, 11:00
|
 |
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
|
А что тут должно произойти-то? Я вот вижу формирование строки, которая так и остается там незадействованной и объявление функции без ее вызова.
|
|

15.06.2014, 11:11
|
|
Новичок на форуме
|
|
Регистрация: 15.06.2014
Сообщений: 5
|
|
|
Эта строка создает кнопку на странице, при нажатии которой происходит запрос данных у сервера, и если входной строковой параметр имеет вид '123456' то все прекрасно работает, а нежели '0123456' то 0 отбрасывается не могу понять как это победить ...
|
|

15.06.2014, 11:16
|
 |
Профессор
|
|
Регистрация: 24.09.2013
Сообщений: 1,436
|
|
|
Что? Здесь создается строка. Просто создается строка. Создается и тут же удаляется сборщиком мусора, да, ибо никакой переменной не присваивается. Схерали она должна в DOM попасть?
|
|

15.06.2014, 11:20
|
|
Новичок на форуме
|
|
Регистрация: 15.06.2014
Сообщений: 5
|
|
Сообщение от Erolast
|
|
Что? Здесь создается строка. Просто создается строка. Создается и тут же удаляется сборщиком мусора, да, ибо никакой переменной не присваивается. Схерали она должна в DOM попасть?
|
там представлен участок кода
Создание меток на yandex map
var initcars = function () {
$.post('HandlerCar.ashx', '', function (response) {
eval(response);
for (i in data) {
//alert(Number(data[i].x), Number(data[i].y));
var myGeoObject = new ymaps.GeoObject({
geometry: {
type: "Point",
coordinates: [Number(data[i].x), Number(data[i].y)]
},
// Свойства.
properties: {
// Контент метки.
iconContent: data[i].Name,
hintContent:
'Имя: ' + data[i].Name + '<br />' +
'ID: ' + data[i].ID + '<br/>' +
'Общий пробег: ' + data[i].Path + '<br/>' +
'Скорость движения: ' + data[i].Speed + '<br />' +
'Время события: ' + data[i].LastTime + '<br />' +
'Загрузить трек => ' + '<input id="' + data[i].Name + '" type="button" onclick="LoadTrackSelectedCar("' + data[i].ID + '")" value="<-->" />',
id: data[i].ID
}
}, {
preset: data[i].IconType
});
myMap.geoObjects.add(myGeoObject);
}
initlist();
initmap();
});
};
var LoadTrackSelectedCar = function (ID) {
$.post('HandlerTrack.ashx?CarID=' + ID + '&BS=456285' + '&BF=0', '', function (response) {
eval(response);
alert(data);
});
};
вот подробнее
Последний раз редактировалось artur'chik, 15.06.2014 в 11:23.
|
|

15.06.2014, 11:31
|
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Я так понимаю что проблема в том, что при вызове функции LoadTrackSelectedCar той сгенерированной кнопкой внутри функции в ID теряется 0? Ну так это потому что в результате конкатенации получается:
'" type="button" onclick="LoadTrackSelectedCar(' + data[i].ID + ')" value="load" />' ==
'" type="button" onclick="LoadTrackSelectedCar(' + '0123' + ')" value="load" />' ==
'" type="button" onclick="LoadTrackSelectedCar(0123)" value="load" />'
В результате в функцию передается число 0123, а не строка. Соответственно решение в том, чтобы поставить кавычки в строку:
'" type="button" onclick="LoadTrackSelectedCar(\'' + data[i].ID + '\')" value="load" />'
Последний раз редактировалось jsnb, 15.06.2014 в 11:38.
|
|

15.06.2014, 11:36
|
 |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,618
|
|
|
Цитата:
|
|
Соответственно решение в том, чтобы поставить кавычки в строку:
|
...а строку, соответственно, в кавычки.
Кстати это
'<input id="' + data[i].Name + '" type="button" onclick="LoadTrackSelectedCar("' + data[i].ID + '")" value="<-->" />'
тоже работать и не должно, тк получается в итоге:
<input id="Name" type="button" onclick="LoadTrackSelectedCar("*!*ID")"*/!* value="<-->" />
<input id="Name" type="button" onclick="LoadTrackSelectedCar(" value="<-->" />
Выделенный фрагмент отбрасывается как мусор ибо кавычка закрылась.
__________________
29375, 35
Последний раз редактировалось Aetae, 15.06.2014 в 11:42.
|
|

15.06.2014, 11:48
|
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Сообщение от Aetae
|
Кстати это
'<input id="' + data[i].Name + '" type="button" onclick="LoadTrackSelectedCar("' + data[i].ID + '")" value="<-->" />'
тоже работать и не должно, тк получается в итоге:
<input id="Name" type="button" onclick="LoadTrackSelectedCar("*!*ID")"*/!* value="<-->" />
<input id="Name" type="button" onclick="LoadTrackSelectedCar(" value="<-->" />
Выделенный фрагмент отбрасывается как мусор ибо кавычка закрылась.
|
Да я еще минут 15 назад заменил на экранированные одинарные)
|
|
|
|