Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.06.2014, 10:45
Новичок на форуме
Отправить личное сообщение для artur'chik Посмотреть профиль Найти все сообщения от artur'chik
 
Регистрация: 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


Просто катастрофа ...
Как бороться с типами?
Ответить с цитированием
  #2 (permalink)  
Старый 15.06.2014, 10:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

var mystr = '0123';
	function main (str) {
	  alert(str);
	}
	main(mystr);
Ответить с цитированием
  #3 (permalink)  
Старый 15.06.2014, 11:48
Новичок на форуме
Отправить личное сообщение для artur'chik Посмотреть профиль Найти все сообщения от artur'chik
 
Регистрация: 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);
            });

        };

Вот это не работает ...
Ответить с цитированием
  #4 (permalink)  
Старый 15.06.2014, 12:00
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

А что тут должно произойти-то? Я вот вижу формирование строки, которая так и остается там незадействованной и объявление функции без ее вызова.
Ответить с цитированием
  #5 (permalink)  
Старый 15.06.2014, 12:11
Новичок на форуме
Отправить личное сообщение для artur'chik Посмотреть профиль Найти все сообщения от artur'chik
 
Регистрация: 15.06.2014
Сообщений: 5

Эта строка создает кнопку на странице, при нажатии которой происходит запрос данных у сервера, и если входной строковой параметр имеет вид '123456' то все прекрасно работает, а нежели '0123456' то 0 отбрасывается не могу понять как это победить ...
Ответить с цитированием
  #6 (permalink)  
Старый 15.06.2014, 12:16
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Что? Здесь создается строка. Просто создается строка. Создается и тут же удаляется сборщиком мусора, да, ибо никакой переменной не присваивается. Схерали она должна в DOM попасть?
Ответить с цитированием
  #7 (permalink)  
Старый 15.06.2014, 12:20
Новичок на форуме
Отправить личное сообщение для artur'chik Посмотреть профиль Найти все сообщения от artur'chik
 
Регистрация: 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 в 12:23.
Ответить с цитированием
  #8 (permalink)  
Старый 15.06.2014, 12:31
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 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 в 12:38.
Ответить с цитированием
  #9 (permalink)  
Старый 15.06.2014, 12:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Цитата:
Соответственно решение в том, чтобы поставить кавычки в строку:
...а строку, соответственно, в кавычки.

Кстати это
'<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 в 12:42.
Ответить с цитированием
  #10 (permalink)  
Старый 15.06.2014, 12:48
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 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 назад заменил на экранированные одинарные)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача объекта через параметр функции PHP zhurchik Серверные языки и технологии 1 06.12.2012 15:24
передача функции в качестве параметра virus-07 Общие вопросы Javascript 3 11.10.2012 12:50
передача функции с параметрами в функцию oli Общие вопросы Javascript 3 09.08.2012 13:52
Передача функции другой функции ntro123 jQuery 3 20.02.2011 12:15
Передача объекта как параметра функции Fenec jQuery 3 05.01.2011 18:22