Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   добавить скрипт динамически на страницу (https://javascript.ru/forum/misc/71038-dobavit-skript-dinamicheski-na-stranicu.html)

Sergey_vas 20.10.2017 21:18

добавить скрипт динамически на страницу
 
Здравствуйте.
Есть вопрос уважаемые специалисты, суть такая: на форме есть много полей ввода таблица с <input>) при клике должно появляться меню это работает вот код:
Код:

$(function () {
        $('#sptemp_ch1').keypad({onClose: function() {
        var getch = $(this).val();
        var valint = parseInt(getch);
        if(valint>500){
            valint = 500;
        }else if(valint<0){
            valint = 0;
        }else if((valint===undefined)||(valint ===NaN)){
            valint = 0;
        }
        $(this).val(valint);
        }});
});

Сложность в том что полей sptemp_ch1 много и если копипастить получается много строк. Как сделать что бы в цикле этот код автоматом во время загрузки страницы загружался?
както так может:
Код:

fuction generatecodejs(){

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.charset = 'utf-8';
script.id = 'keysp';
script.defer = true;
script.async = true;
script.onload = function () {

}
for(var i = 0; i<19;i++){
script.text += [" $(function () {        $('#sptemp_ch'"+i+").keypad({onClose: function() {        var getch = $(this).val();        var valint = parseInt(getch);        if(valint>500){            valint = 500;        }else if(valint<0){  valint = 0;        }else if((valint===undefined)||(valint ===NaN)){  valint = 0;        }        $(this).val(valint);                }});});
"].join('');
}
head.appendChild(script);
}


ruslan_mart 21.10.2017 00:17

Что-то Вы совсем не тем путём пошли :)

Достаточно будет просто вставить один единственный скрипт:

$(function () {
	$('[id^="sptemp_ch"]').keypad({onClose: function() {
		var getch = $(this).val();
		var valint = parseInt(getch);
		if(valint>500){
		    valint = 500;
		} else if(valint<0){
	    		valint = 0;
		} else if((valint===undefined)||(valint ===NaN)){
	    	valint = 0;
		}
		$(this).val(valint);
	}});
});


Можно даже оптимизировать:

$(function () {
	$('[id^="sptemp_ch"]').keypad({
		onClose: function() {
			this.value = Math.max(0, Math.min(500, parseInt(this.value))) || 0;
		}
	});
});

Sergey_vas 24.10.2017 21:15

Благодарю


Часовой пояс GMT +3, время: 05:15.