|
|
|
|
<script language="javascript">
function __tfunc(value123)
{
if (test.style.display == "none")
{
test.style.display = "block";
testbutton.focus();
}
else
{
test.style.display = "none";
}
test.innerHTML = 'Вы заказали ' + value123 + ' метров данного материала. Сумма Вашего заказа = ' + 100*value123 +
' руб. <form><input type="hidden" name="test" value="' + value123 + '"><input type="submit" value="Вас это устроит?"></form>';
}
function __clfunc()
{
test.style.display = "none";
}
</script>
<input id="testinput" type="text">
<button id="testbutton" onclick="javacript: __tfunc(testinput.value);" onblur="javascript: __clfunc();">Подсчет</button><br>
<div id="test" style="display: none;"></div>
|
Проблема в том, что данный скрипт не работает в браузере Opera 9.5 (Работает в последних версиях InternetExplorer, FireFox и Safari, но работу в ранних не проверял, но этого и не требуется). Так же приходится создавать форму JavaScript'ом:
test.innerHTML = 'Вы заказали ' + value123 + ' метров данного материала. Сумма Вашего заказа = ' + 100*value123 +
' руб. <form><input type="hidden" name="test" value="' + value123 + '"><input type="submit" value="Вас это устроит?"></form>';
|
Хотя на самом деле в форме будет еще больше полей, так вот хотелось бы, чтобы данный скрипт работал так чтобы форма окутывала <input id="testinput" type="text">, но при этом функционал остался такой же, просто хочется сократить число полей input и не делать лишние скрытые поля для отправки серверу для обработки. (При попытки обернуть формой функционал теряется, т.е. при нажатии на кнопку "Подсчет" <div id="test" style="display: none;"></div> появляется, а потом быстро исчезает, а должно быть так, чтобы данный div исчезал только тогда, когда пользователь либо повторно нажимает на кнопку "Подсчет", либо кнопка "Подсчет" теряет фокус.)
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Sc
(09.08.2008 в 13:48)
| | Вы попробовали бы почитать то, что пишется в "Консоли ошибок" (и в Opera, и в FireFox) - и ваш вопрос был бы снят.
Обращаться к объекту напрямую по его ID сильно не рекомендуется.
Необходимо использовать метод getElementById.
Добавьте этот метод - и всё будет работать:
function __tfunc(value123)
{
if (document.getElementById ('test').style.display == "none")
{
document.getElementById ('test').style.display = "block";
document.getElementById ('testbutton').focus();
}
else
{
document.getElementById ('test').style.display = "none";
}
document.getElementById ('test').innerHTML = 'Вы заказали ' + value123 + ' метров данного материала. Сумма Вашего заказа = ' + 100*value123 +
' руб. <form><input type="hidden" name="test" value="' + value123 + '"><input type="submit" value="Вас это устроит?"></form>';
}
function __clfunc()
{
document.getElementById ('test').style.display = "none";
}
...
<button id="testbutton" onclick="__tfunc (document.getElementById ('testinput').value);" onblur="__clfunc();">Подсчет</button><br>
|
И, во-вторых, совсем не стоит иметь на одной странице два разных элемента с одним ID|именем.
В чём сакральный смысл того, что внутри DIV'a с ID="test" создается INPUT с name="test"?
У вас, что, фантазии на какое-нить иное имя не хватает?
Я понимаю, что английский язык беден словами (не то, что великий русский), и понимаю, что ваши познания в английском совсем никакие... но добавить справа несколько цифр к какому-нить из двух test'ов могли бы и догадаться :-)
Ну и, наконец, протокол javascript: в событиях при тегах использовать не надо - я в примере удалил это глупейшее дело. | |
|
|
|
|
|
|
|
для: PAT
(09.08.2008 в 14:21)
| | Конечно спасибо, но document.getElementById я уже вставил.
>Вы попробовали бы почитать то, что пишется в "Консоли ошибок" (и в Opera, и в FireFox) - и ваш вопрос был бы снят.
Я вообще-то создание сайтов давно бросил заниматься, по этому время от времени знакомым просто помогаю, так для смена рода деятельности и то я серверную часть всегда писал и буду писать:)
> И, во-вторых, совсем не стоит иметь на одной странице два разных элемента с одним ID|именем.
Просто редактировал и издевался по-разному, так что выложил неудачный вариант.
> В чём сакральный смысл того, что внутри DIV'a с ID="test" создается INPUT с name="test"?
> У вас, что, фантазии на какое-нить иное имя не хватает?
> Я понимаю, что английский язык беден словами (не то, что великий русский), и понимаю, что ваши познания в английском совсем никакие... но добавить справа несколько цифр к какому-нить из двух test'ов могли бы и догадаться :-)
Ну с кажем так, что у меня и фантазии и владение английским более ваших будут в сферу деятельности + английский язык не такой уж и бедный, если его нормально изучить;) Совет тебе на будущее, никогда в такой манере не выражайся, ибо тяжело будет карьеру делать;) Я же не говорю, что ты в моей деятельности ноль полный:) // Ничего личного, просто возмущает такая манера общения, сразу видно, что с людьми мало работаешь, а если и в должной мере, то качество общения очень страдает:)
> Ну и, наконец, протокол javascript: в событиях при тегах использовать не надо - я в примере удалил это глупейшее дело.
Ну какой исходник был, такой и предоставил. | |
|
|
|