Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery 1.3.2 и texarea с отправкой (https://javascript.ru/forum/jquery/3719-jquery-1-3-2-i-texarea-s-otpravkojj.html)

Viper 18.05.2009 10:07

Jquery 1.3.2 и texarea с отправкой
 
Собственно что нужно. Нужно проверить текстовое поле на пустое значение и если поле не пустое, только тогда отправить данные.

echo '<form action="" method="post" name="pedit"><div id="add">';

    foreach ($rows as $row) {
        echo '<dl>
            <dt>'._PNUMBER.': </dt>
            <dd><input type="text" name="pnum" class="inputbox" value="'.$row->p_number.'" /></dd>
            <dt>'._PNAME.': </dt>
            <dd id="row"><input type="text" name="pname" class="inputbox" value="'.$row->p_name.'" /></dd>
            <dt>'._PNAME_ALIAS.': </dt>
            <dd><input type="text" name="pnamea" class="inputbox" value="'.$row->p_name_alias.'" /></dd>
            <dt>'._PSDATE.': </dt>
            <dd id="row"><input type="text" name="psdate" class="inputbox" value="'.$row->p_sdate.'" /></dd>
            <dt>'._PCDATE.': </dt>
            <dd><input type="text" name="pcdate" class="inputbox" value="'.$row->p_cdate.'" /></dd>
            <dt>'._PPORT.': </dt>
            <dd id="row"><input type="text" name="pport" class="inputbox" value="'.$row->p_port.'" /></dd>
            <dt>'._PDESC.': </dt>
            <dd><textarea name="pdesc" style="width: 515px; height: 70px;" wrap="virtual" class="inputbox">'.$row->p_desc.'</textarea></dd>
        </dl>';
    }

        echo '<input type="hidden" name="task" value="savePhoneChange" />
        <input type="hidden" name="cid" value="'.$id.'" />
        <input type="hidden" name="Itemid" value="'.$itemid.'" />
        <input type="hidden" name="option" value="com_journal" />
        <input type="submit" class="button" value="'._EDIT_CAT.'" id="send" />
    </form></div><div id="info"></div>


<script type="text/javascript">
        $(document).ready(function(){
			$("#send").click(function(){
				var txt = $("textarea").val();
				if (txt == \'\') {
					$("#info").addClass("info").text("'._ALERT_REQUIRED.'");
					$("form").submit(function() { return false; });
				} else {
					$("#info").removeClass("info").text("");
					$("form").submit(function() { return true; });
				}
			});
		});
    </script>


собственно первая часть проверки работает. т.е. появляется сообщение что нужно заполнить. а вот вторая часть не совсем. т.е. сообщение убирается при клике на кнопку, но данные не отправляются. т.е. страница даже не перезагружается.

x-yuri 18.05.2009 13:33

\'\' - это что такое? Некорректная подсветка синтаксиса уже должна была навести на мысли
p.s. а если пользователь переместит фокус на кнопку submit и нажмет Enter?

Viper 18.05.2009 21:53

Цитата:

Сообщение от x-yuri (Сообщение 19231)
\'\' - это что такое? Некорректная подсветка синтаксиса уже должна была навести на мысли
p.s. а если пользователь переместит фокус на кнопку submit и нажмет Enter?

так и должно быть это часть экранирование т.к. echo у меня с " кавычками а при указании одинарных ошибка синтаксиса.

если жмакнуть enter то тоже ничего. собстно порыл доки немного переделал.

x-yuri 18.05.2009 22:29

Цитата:

p.s. а если пользователь переместит фокус на кнопку submit и нажмет Enter?
я про то, что форму можно и клавиатурой отправить и никакой click не сработает

по поводу проблемы: обработчики submit не заменяют друг друга, а добавляются в очередь, соответственно submit отменяется, если хоть раз был назначен первый обработчик. В общем делай как все, перехватывай submit

Viper 19.05.2009 09:57

переделал исходя из написанного выше

$("form").submit(function() {
	if ($("textarea").val() != \'\') {
		$("#info").removeClass("info").text("");
			return true;
	}
	$("#info").addClass("info").text("'._ALERT_REQUIRED.'");
		return false;
});


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