Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2016, 16:07
Новичок на форуме
Отправить личное сообщение для zerocooolx Посмотреть профиль Найти все сообщения от zerocooolx
 
Регистрация: 29.07.2016
Сообщений: 4

Поместить значение переменной в тег value и работа onmousedown/onmouseup
Друзья, совсем новичок во всём этом.
Для Вэб-сервера ПЛК нужно реализовать кнопку, которая будет отправлять "1" при нажатии и "0" при отпускании.
Долгими муками вышло следующее, но кажется где-то ошибочка) подсобите, друзья)
Код:
<body>
<script>
	var STOP;
            function mousedown(){
                STOP=1;
	}
	;
            function mouseup(){
                STOP=0;
	}
</script>
</body>
<body style="margin: 50; background: LightCyan; text-align: center">
<h1>LM60</h1>
		<!-- AWP_In_Variable Name='"Stop_WEB"' -->
		<form method="post" action="" onmousedown="mousedown()" onmouseup="mouseup()">
		<input type="submit" value="СТОП" style="height: 55px; width: 200px">
		<input type="hidden" name='"Stop_WEB"' value='"+STOP+"'>
		</form>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2016, 18:15
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

zerocooolx,
Сообщение от zerocooolx
кажется где-то ошибочка)
Трудно сказать, где нет ошибочки.
value - не тег, а атрибут элемента html.
https://webref.ru/html/input

Многовато body

Совершенно непонятно, куда (и зачем?) вы хотите отправлять 0 или 1.

Стоит почитать про функциональность form
например
https://webref.ru/html/form
http://www.wisdomweb.ru/HTML/forms.php
Пока больше сказать нечего
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2016, 18:40
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

zerocooolx,
Небольшой пример по занесению значения в input
<body onmousedown="mousedown()" onmouseup="mouseup()">
   <input name="Stop_WEB" value="">
</body>
<script>
	var target = document.querySelector("input[name='Stop_WEB']");
        function mousedown(){
                target.value=1;
	};
        function mouseup(){
                target.value=0;
	}
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 30.07.2016, 09:52
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

При нажатии и так уйдет, а на отпускание повесь скрипт на кнопку сабмит, чтобы по mouseup сабмитила форму.
Ответить с цитированием
  #5 (permalink)  
Старый 30.07.2016, 11:18
Новичок на форуме
Отправить личное сообщение для zerocooolx Посмотреть профиль Найти все сообщения от zerocooolx
 
Регистрация: 29.07.2016
Сообщений: 4

Сейчас опробую, спасибо)
Суть такова - через "input" шлётся на адрес в PLC "Stop_WEB" значение 1/0. Так вот, просто послать 1 или 0 получается легко, а вот так что бы послать 1 при нажатии, а 0 при отпускании не выходит. Усугубляет, то что переменная из PLC объявляется в кавычках, и как только конструкцию переписываешь с кавычками, то нет выборки 1/0, а появляется поле ввода значения и оно засылается по нажатию кнопки.
Т.е. всё работает как нужно, но посылается переменная без кавычек, и PLC её "не узнаёт".
<body style="margin: 50; background: LightCyan; text-align: center">
<h1>LM60</h1>
<!-- AWP_In_Variable Name='"Stop_WEB"' -->
		<form method="get" action="" onmousedown="mousedown()" onmouseup="mouseup()">
		<input type="submit" value="СТОП" style="height: 55px; width: 200px">
		<input name='"Stop_WEB"' value="">
		</form>
<script>
    var target = document.querySelector("input[name='"Stop_WEB"']");
        function mousedown(){
            target.value=1;
    };
        function mouseup(){
            target.value=0;
    }
</script>
</body>

Есть ли какая-нибудь функция для JS которая сможет отправлять значение прямо из скрипта в переменную? Спасибо.

Получилось!)
<body style="margin: 50; background: LightCyan; text-align: center">
<h1>LM60</h1>
<!-- AWP_In_Variable Name='"Data_block".Stop_WEB' -->
<form name="f" method="get" action="">
<input type="hidden" name='"Data_block".Stop_WEB'  id='"Data_block".Stop_WEB' type="text" value="" >
</form>         
<BUTTON onmousedown="mousedown()" onmouseup="mouseup()" onmouseout="mouseup()">СТОП</BUTTON>
<script>
  function mousedown(){
           document.getElementById('"Data_block".Stop_WEB').value = "1";
           document.forms["f"].submit();
            }
			;          
  function mouseup(){
            document.getElementById('"Data_block".Stop_WEB').value = "0";
            document.forms["f"].submit();
            }
</script>
</body>

Последний раз редактировалось zerocooolx, 30.07.2016 в 12:34.
Ответить с цитированием
  #6 (permalink)  
Старый 31.07.2016, 00:26
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

zerocooolx,

Ну само собой если форма перегружает страницу, ты сможешь только нажимать баттоны. Отпускание произойдет как раз в тот момент, когда поезд Москва-Магадан уже отправляется с 11-го пути.

Тебе же не нужен метод post? Ну и отправляй get'ом в урле. То есть стандартная функция отправки данных на сервер к которой приделан калбек для кошерных вещей.

Значения для передачи на сервер должны быть суцессфульными. Можно и нули передавать, конечно, но с ними будет геморрой, поэтому передавай явные величины, а на сервере уже обнулишь. Тут значит 1 и -1.

<input id="btn" type="button" value="Задавись"/>

<script>
var action_url /* = урл который тебе должен быть известен */,

ajax_get=function(u,c) {
	var x=new XMLHttpRequest();
	x.onreadystatechange=function(){
		if(this.readyState==4) {
			try{if(c) c(this);}
			catch(e){alert('Облом '+e);}
		}
	};
	x.open("GET",u);
	x.setRequestHeader("X-Requested-With","XMLHttpRequest");
	x.send();
},

callback=function(x){
	alert('Задавил '+x);
},

send=function(e){
	var v={'mousedown':1,'mouseup':-1}
	ajax_get(action_url+'?v='+v[e.type],callback);
};

document.getElementById('btn').addEventListener('mouseup',send);
document.getElementById('btn').addEventListener('mousedown',send);
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 31.07.2016, 00:40
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Для метода post действующее вещество такоэ же ми-ми-ми:

ajax_post=function(u,d,c){
	
	var
	x = new XMLHttpRequest(),
	f = new FormData();
	f.append(d); /* те же самые данные, только в поле формы */
	
	x.open('POST',u); /* урл который ты знаешь */

	x.onreadystatechange=function(){
		if(this.readyState==4) {
			try{if(c) c(this);}
			catch(e){alert('Облом '+e);}
		}
	};
	x.setRequestHeader("X-Requested-With","XMLHttpRequest");
	x.send(f);
};



Но самая мякотка, когда форма все-таки есть, как у тебя. Тогда на ее субмит прописываешь вот такое

x = new XMLHttpRequest();
x.open(this.method,this.action);
x.onreadystatechange = callback;
x.setRequestHeader("X-Requested-With","XMLHttpRequest");
x.send(new FormData(this));


И жди ответа в callback
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение переменной присваивается только со второй попытки thesun Общие вопросы Javascript 9 29.01.2016 20:52
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
Выводить значение раньше переменных Гробовщик Общие вопросы Javascript 11 10.09.2013 08:42
В contains() не подставляется значение переменной Heger jQuery 2 11.12.2011 20:26
Значение переменной salex009 jQuery 1 05.12.2011 16:55