Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: JV от 29 Марта 2004, 07:58:55
как проверить где находится фокус? например, в форме есть 2 поля: text и textarea document.forma.text.focus() - устанавливает фокус, а как проверит где он в данный момент, при вызове скрипта - на text или на textarea?? скрипт вызывается при onclick на совершенно другом элементе??
JV вопрос глупый ибо при клике у тебя фокус переходи на элемент по которому кликнул
ThE0ReTiC не, это я понимаю. но вопрос в другом: есть форма и есть отдельная ссылкаaaa а скрипт выглядит так: function add(t){ if(document.posl.model.focus == true){ //вот так нельзя, а как можно? document.posl.model.value = document.posl.model.value + t; document.posl.model.focus(); } if(document.posl.theme.focus == true){ document.posl.theme.value = document.posl.theme.value + t; document.posl.theme.focus(); } }
Вообще, для элемента, например input type=text делаешь так:
Werwolf13 да, это я понимаю, но _надо_ не так!! :) есть несколько ссылок типа aaa и везде some_text разный.. вот мне и нужно, чтобы при клике на эту ссылку либо в поле text, либо в textarea (в зависимости от того, где находится курсор, и куда вводит пользователь) появился этот some_text.. а не только при onfocus, потому что пользователь может вообще этими ссылками не воспользоваться, а просто набить текст в textarea и нажать submit.. чтобы еще как-то уточнить, приведу пример: вот как здесь, в форуме. Когда пишешь сообщение, есть вспомогательные vB коды, и когда ты кликаешь, например, на \'B\', то в текстовом поле появляется , вот и мне надо нечто подобное, только проблема в том, что у меня не одно поле, а два, и вставить нужно в одно из них, где в данный момент идет набор. уффф.. надеюсь, кто-нибудь поймет мою проблему, и поможет :)
на самом деле, это сложно. к моменту нажатия на кнопку фокус у поля уже потерян, поэтому нужно запоминать, где он был в последний раз, например<input onfocus="lastFocus=this"<br /><br />и потом<br /><br />lastFocus.value=....<br /><br />см. также http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/activeelement.asp
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>CGVictor</strong> от <strong>29 Марта 2004, 15:43:43</strong>
</dt>
<dd class="postbody">
Фокус тебе, наверное, не поможет.<br />При клике на линк <strong>фокус устанавливается на этот линк</strong>, а потом обрабатывается сам линк...
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>Werwolf13</strong> от <strong>29 Марта 2004, 16:14:07</strong>
</dt>
<dd class="postbody">
<strong> CGVictor</strong><br />Прав ты, конечно, но пускай сделает тогда так: в линках ставит href = \'#\', onclick="func1(); ", где в func1() устанавливается прежде всего фокус туда, где он был до клика (Гоша в общих чертах указал, как это делать), а потом уже вызывает add(), этот add() вставляет текст в элемент document.activeElement. Должно бы покатить, как думаешь?
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>JV</strong> от <strong>29 Марта 2004, 18:08:53</strong>
</dt>
<dd class="postbody">
Всем огромное спасибо!!!<br />проблема решена :)<br /><br />обрабатываю событие onblur<br /><form name=\'posl\'><br /><input type=\'text\' name=\'theme\' size=60 value=\'$theme\' onblur=\'ch();\'><br /><textarea name=\'model\' cols=45 rows=15 onblur=\'ch1();\'><br /><br />типа когда элемент теряет фокус, мы делаем его активным, но чтобы фокус мог перемещаться из одного текстового поля в другое, надо это учесть и не делать в этом случае элемент активным. Довольно просто ))<br /><br />пришлось написать еще 2 функции:<br /> function ch(){<br /> if(document.activeElement != document.posl.model)<br /> document.posl.theme.setActive();<br />}<br /><br />function ch1(){<br /> if(document.activeElement != document.posl.theme)<br /> document.posl.model.setActive();<br />}<br /><br />функция add приняла вид:<br />add(t){<br /> document.activeElement.value += t;<br /> document.activeElement.focus();<br />}<br /><br />по крайней мере так, как мне надо это работает!! еще раз спасибо всем огромное! )))
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>JV</strong> от <strong>29 Марта 2004, 18:35:41</strong>
</dt>
<dd class="postbody">
да, но теперь возникла другая проблема. тоже, возможно, покажется глупой, поэтому тема отсается актуальной :)<br />в общем, как значения из Java Script вернуть в PHP<br />у меня есть переменна $model, которая создается из поля формы<br /><textarea name=\'model\'><br />Но! если еще не нажата кнобка submit в форме, то этой переменно еще не существует, а мне нужно, чтобы она возникла и ее значение равнялось тому, что пользователь набрал в этом поле.<br />забрать значение можно скриптом<br />var tmp = document.posl.model.value;<br />но вот как это положить в переменную $model ?? то есть как значение переменной из Java Script положить в переменную PHP?<br />это вообще возможно??<br />или, может, я мыслю неправильно - и есть другой способ?.. очень прошу помочь!..
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>CGVictor</strong> от <strong>29 Марта 2004, 20:04:17</strong>
</dt>
<dd class="postbody">
<strong>JV</strong> <br />Чего-й то я не понял.<br />Если не нажата кнопка, то фома не отправлена. И ПХП просто не при чем. А если она отправлена, то используй $model...<br /><br />В принципе, для передачи значений из JS можно использовать скрытые поля, заполняемые скриптом. Но лучше ты напиши, что тебе все-таки надо...
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>JV</strong> от <strong>29 Марта 2004, 20:29:18</strong>
</dt>
<dd class="postbody">
<strong>CGVictor</strong><br />в общем, форма не отправлена, но текстовое поле заполнено. Вместо кнопки submit пользователь нажимает, скажем, опять на ссылку<br /><a href=\'javascript:aaa()\'>click</a><br /><br />function aaa(){<br />var tmp = document.posl.model.value;<br />}<br />и теперь эту переменную (то бишь, текст из формы) мне надо записать в обычный текстовый файл, и так как я не знаю, работает ли Java Script с файлами (а если и работает, то не пойму как), то хотелось передать это все PHP и его средствами записать в файл. Вот такая замута :)
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>CGVictor</strong> от <strong>30 Марта 2004, 14:05:36</strong>
</dt>
<dd class="postbody">
<strong>JV</strong> <br />Как ответ на вопрос:<br />1.JS с файлами не работает.<br />2.Делаешь фреймы (1-2 шт.), в них формы для каждого варианта отправки. При переходе фокуса ты submit-ишь определенную форму, которая отправляет некие данные на сервер. Данные при потере фокуса заполняешь в JS.<br /><br />Как диагноз:<br />Скорее всего, если возник такой вопрос - у тебя серьезные ошибки на этапе проектирования интерфейса. Можно обойтись без такого варианта работы. Если совсем идей нет - выноси отдельное окошко с полями для заполнения, как, например, в Я.Почте. Варианты есть.<br />Лучше опиши задачу.
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>гоша</strong> от <strong>30 Марта 2004, 16:26:10</strong>
</dt>
<dd class="postbody">
<strong>JV</strong> <br /><br />> (то бишь, текст из формы) ... хотелось передать это все PHP <br /><br /><form name=xxx action=zzz.php><br /><textarea name=aaa>... http://faq.phpclub.net/na_tankeCGVictor хорош врать.
гоша [moderator] язык :mad: [/moderator]
CGVictor не, фреймы вообще не нужны.. как варинт тут возникла мысля при нажатии pnclick вызвать метод submit, и потом documet.location() с необходимыми параметрами, может, получится.. попробую.. если что, еще уточню проблемку.. а пока _спасибо_!! :)
да, это сработало. вот так:<br /></form><br /><br /><a href=\'javascript:before_save()\'><br /><br /> function before_save(){<br /> var t=document.posl.theme.value;<br /> var m=document.posl.model.value;<br /> window.location.href="file.php?save=1&theme="+t+"&model="+m;<br /> }<br /><br />Только вот, теперь бы еще закодировать это текст, который хранится в t и m. Есть ли в Java Script некое подобие rawurlencode() ?? вообще там есть функции кодирования? а то нехорошо голый текст на русском языке передавать.. ))
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>CGVictor</strong> от <strong>30 Марта 2004, 18:35:24</strong>
</dt>
<dd class="postbody">
<div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote"><strong>гоша</strong>:<br />хорош врать.</blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br />Что тебе не понравилось?<br /><br /><div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote"><strong>JV</strong>:<br />мысля при нажатии pnclick вызвать метод submit, и потом documet.location() с необходимыми параметрами</blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br />Да ты разберись, что тебе нужно!<br /><br /><div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote"><strong>JV</strong>:<br />а то нехорошо голый текст на русском языке передавать</blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br />А что тебя не устраивает? По спецификации - любой символ 8битной кодировки.<br />[off]Чем меня свело с этим форумом - судьбой или судорогой?[/off]
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>JV</strong> от <strong>30 Марта 2004, 19:26:16</strong>
</dt>
<dd class="postbody">
<div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote">CGVictor:<br />Да ты разберись, что тебе нужно!</blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br /><br />да знаю я что мне нужно! мне нужно передать параметры в ПХПшную прогу, чего и удалось достьчь с помощью window.location.href="file.php?save=1&theme="+t+"&model="+m;<br />здесь мне уже все ясно, а про кодировку все-таки не понятно..<br />что значит: <br /><div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote">По спецификации - любой символ 8битной кодировки.</blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br />не пойму.. ??
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>гоша</strong> от <strong>30 Марта 2004, 19:37:38</strong>
</dt>
<dd class="postbody">
<strong>JV</strong> <br /><br />не тупи.<br /><br />повторяю еще один и последний раз <br /><br />"переменные" php скрипту передаются так<br /><br /><form action=СКРИПТ.php><br /><input ....><select....><textarea....><br /><input type=submit><br /></form><br /><br />ВСЁ. <br /><br />без всяких яваскриптов итп.<br />вперед с песней читать на танке и до новых встреч.<br /><br /><strong>CGVictor</strong> <br /><br />Формулирую интеллигентно: <br /><br />хватит морочить человеку голову. Не владеешь вопросом -- не суйся с советами.
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>JV</strong> от <strong>30 Марта 2004, 19:47:57</strong>
</dt>
<dd class="postbody">
<strong>гоша</strong><br /><br />не, я не туплю..<br />ты, может, невнимательно проблемку мою прочитал, но она заключалась в том, что submit еще не нажата, и, возможно, не будет нажата вообще, а мне _надо_ выцепить то, что набрал в поле textarea пользователь, и передать на выполнение скрипту..<br />поэтому ява тут очень даже причем..<br />а за ссылку - спасибо, мне понравилось )) больше понимания внесло в работу ПХП.
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>CGVictor</strong> от <strong>31 Марта 2004, 13:00:08</strong>
</dt>
<dd class="postbody">
[OFF]<div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote"><strong>гоша</strong>:<br />Формулирую интеллигентно: </blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br />Так лучше<br /><div class="quoteheader"><div class="topslice_quote">Цитировать</div></div><blockquote class="bbc_standard_quote"><strong>гоша</strong>:<br />Не владеешь вопросом -- не суйся с советами.</blockquote><div class="quotefooter"><div class="botslice_quote"></div></div><br />Тебе, как мега-маха-гуру-ЖСа-и-ПХП, конечно, виднее...<br /><br />Да, если ты не знал: то, что не относится к теме обсуждения, обычно оформляют <strong>оффтопиком</strong>[/OFF]<br /><br /><strong>JV</strong> <br />1.Я имел в виду то, что в принципе можно написать в url русские буквы. Это <strong>не будет ошибкой</strong>. Другое дело, что так некрасиво, возникнут проблемы с кодировками и т.д. Но <strong>принципиально</strong> такая возможность существует.<br />2.Смотри доку по функциям <strong>escape</strong> и <strong>unescape</strong>.
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>Werwolf13</strong> от <strong>01 Апреля 2004, 18:25:56</strong>
</dt>
<dd class="postbody">
<strong>CGVictor</strong><br />Вооббще JV нужно, как я понимаю, именно кодирование контента полей формы, а не получение кодов символов и наоборот...<br /><br /><strong>JV</strong><br />Пользуй SSL
</dd>
<dt class="postheader">
Название: <strong>Возможно, глупый вопрос про фокус</strong><br />
Отправлено: <strong>JV</strong> от <strong>02 Апреля 2004, 10:12:31</strong>
</dt>
<dd class="postbody">
На самом деле, проблему я решила. но другими способами, теперь шифровать мне вообще не нужно.<br /><br /><strong>CGVictor</strong><br />escape и unescape не подошли, т.к. при передаче-то они хоть и кодируют, но потом выцепить обратно исходный текст не представляется возможным.<br /><br /><strong>Werwolf13</strong><br />а про SSL я почитала, но что-то не совсем поняла как его можно использовать в этом случае.. точнее я не нашла хорошей доки по нему.<br /><br />но все-равно спасибо, :)<br />пока у меня вопросы все сняты. Благодарю за помощь :)
</dd>
</dl>
<div id="footer" class="smalltext">
<span class="smalltext" style="display: inline; visibility: visible; font-family: Verdana, Arial, sans-serif;"><a href="http://forums.webscript.ru/index.php?action=credits" title="Simple Machines Forum" target="_blank" class="new_win">SMF 2.0.19</a> |
<a href="http://www.simplemachines.org/about/smf/license.php" title="License" target="_blank" class="new_win">SMF © 2016</a>, <a href="http://www.simplemachines.org" title="Simple Machines" target="_blank" class="new_win">Simple Machines</a>
</span>
</div>
</body>
</html>