Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сделать ссылку отправки неактивной
 
 автор: kery   (03.09.2013 в 17:00)   письмо автору
 
 

Есть ссылка которая формирует заказ. Не подскажите как сделать чтобы эта ссылка не была активной до тех пока в чекбоксе не поставить галочку т.е. согласится с условиями заказа, нашел как сделать кнопку неактивной а здесь и не кнопка вроде вобщем я в Java вообще ноль, буду признателен за помощь! Вот эта ссылка

[url]href="#" onclick="document.getElementById('MainForm').submit(); return false;[/url]

  Ответить  
 
 автор: confirm   (03.09.2013 в 19:35)   письмо автору
 
   для: kery   (03.09.2013 в 17:00)
 

А форму обязательно отправлять таким безобразием - <a href="#" onclick="document.getElementById('MainForm').submit(); return false;>Отправить</a> ?
<form>
   <label><input type="checkbox" name="yes" onclick="this.form.send.disabled = !this.checked" /> Я согласен....</label>
   <button name="send" disabled="1">Отправить</button>
</form>

  Ответить  
 
 автор: kery   (03.09.2013 в 19:37)   письмо автору
 
   для: confirm   (03.09.2013 в 19:35)
 

>А форму обязательно отправлять таким безобразием - <a href="#" onclick="document.getElementById('MainForm').submit(); return false;>Отправить</a> ?
>
<form>
>   <label><input type="checkbox" name="yes" onclick="this.form.send.disabled = !this.checked" /> Я согласен....</label>
>   <button name="send" disabled="1">Отправить</button>
></form>

Да я в принципе не знаю каким еще ее отправить это я выдернул из шаблона smarty? там она отправляется именно так

  Ответить  
 
 автор: confirm   (03.09.2013 в 19:50)   письмо автору
 
   для: kery   (03.09.2013 в 19:37)
 

Фома имеет три стандартных типа кнопки, с помощью которых она и отправляется.
Писать всякие глупости не стоит, тем более, что данную в примере кнопку можно стилями оформить и под ссылку, если уж так хочется.
Смарти, это РНР-шаблонизатор, к отправке формы отношения не имеющий, его задача вывести указанный в нем html-код. Что укажите в шаблоне, то и получите на странице. Укажите код как в примере, значит будет отправка формы кнопкой указанной, и только в том случае, если отмечен чекбокс.

  Ответить  
 
 автор: kery   (03.09.2013 в 20:02)   письмо автору
 
   для: confirm   (03.09.2013 в 19:50)
 

Там эта форма идет разорвана сначала сама форма потом вставлен поле для сообщения а потом уже код отправки который именно выбирает эту форму этой функцией
document.getElementById('MainForm

а код в примере выбрасывает на главную и все и не отправляет форму в базу она не заносится

header=$smarty.const.STRING_ORDERING}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="cbt" align="left"><h3>{$smarty.const.STRING_ORDER_CONFIRMATION}</h3></td>
  </tr>
  <tr>
    <td class="cbt" align="center"><img src="data/{$smarty.const.TPL}/checkout3_2.png" alt="" /></td>
  </tr>
</table>
{if $order_success}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbtop oki" align="center">{if $smarty.const.CONF_ACTIVE_ORDER eq 1}
      {$smarty.const.STRING_ORDER_PLACED_ACTIVATE}{if $smarty.const.CONF_DISP_ORDERNUM eq 1}
      <br>{$smarty.const.STRING_ORDER_NUME}: {$orderidd}{/if}
      {else}{$smarty.const.STRING_ORDER_PLACED}{if $smarty.const.CONF_DISP_ORDERNUM eq 1}
      <br>{$smarty.const.STRING_ORDER_NUME}: {$orderidd}{/if}
      {/if}</td>
  </tr>
</table>
{if $after_processing_html}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbtop" align="center">{$after_processing_html}</td>
  </tr>
</table>
{/if}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbot">&nbsp;</td>
  </tr>
</table>
{else}
{if $orderSum eq NULL}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbtop error" align="center">{$smarty.const.ERROR_CANT_FIND_REQUIRED_PAGE}</td>
  </tr>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbot">&nbsp;</td>
  </tr>
</table>
{else}
{if $orderSum.orderContentCartProductsCount eq 0}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbtop error" align="center">{$smarty.const.CART_EMPTY}</td>
  </tr>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbot">&nbsp;</td>
  </tr>
</table>
{else}
{if $payment_error}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbtop error" align="center">{$smarty.const.ADMIN_PAYMENT_ERROR}{if $payment_error ne 1}: {$payment_error}{/if}</td>
  </tr>
</table>
{/if}
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hmin"><table cellspacing="1" cellpadding="0" width="100%" class="gre">
        <tr>
          <td class="lt pad" align="left" valign="middle" nowrap="nowrap" width="90%">{$smarty.const.TABLE_PRODUCT_NAME}</td>
          <td class="lt pad" align="center" valign="middle" nowrap="nowrap">{$smarty.const.TABLE_PRODUCT_QUANTITY}</td>
          <td class="lt pad" align="center" valign="middle" nowrap="nowrap">{$smarty.const.TABLE_PRODUCT_COST_WITHOUT_TAX}</td>
        </tr>
        {section name=i loop=$orderSum.sumOrderContent}
        <tr>
          <td class="padt" align="left" valign="middle">{$orderSum.sumOrderContent[i].name}</td>
          <td class="padt" align="center" valign="middle">{$orderSum.sumOrderContent[i].quantity}</td>
          <td class="padt" align="center" valign="middle" style="white-space: nowrap">{$orderSum.sumOrderContent[i].cost}</td>
        </tr>
        {/section}
        <tr>
          <td class="padt bf" align="right" valign="middle" colspan="2">{$smarty.const.STRING_PRED_TOTAL}</td>
          <td class="padt" align="center" valign="middle" style="white-space: nowrap">{$orderSum.pred_total}</td>
        </tr>
        {if $orderSum.discount_percent>0}
        <tr>
          <td class="padt bf" align="right" valign="middle" colspan="2">{$smarty.const.ADMIN_DISCOUNT} {$orderSum.discount_percent}%</td>
          <td class="padt" align="center" valign="middle" style="white-space: nowrap">{$orderSum.discount_show}</td>
        </tr>
        {/if}
        <tr>
          <td class="padt bf" align="right" valign="middle" colspan="2">{$smarty.const.STRING_SHIPPING_TYPE_PAY}</td>
          <td class="padt" align="center" valign="middle" style="white-space: nowrap">{$orderSum.shipping_cost}</td>
        </tr>
        <tr>
          <td class="pad bf cl12" align="right" valign="middle" colspan="2">{$smarty.const.PRODUCT_WEIGHT_TOTAL}</td>
          <td class="pad lt cl12" align="center" valign="middle" style="white-space: nowrap;">{$shopping_cart_total_weight}&nbsp;&#1082;&#1075;.</td>
        </tr>
        <tr>
          <td class="pad bf cl12" align="right" valign="middle" colspan="2">{$smarty.const.TABLE_TOTAL}</td>
          <td class="pad lt cl12" align="center" valign="middle" style="white-space: nowrap;">{$orderSum.total}</td>
        </tr>
      </table></td>
  </tr>
</table>
<br>
<table cellspacing="0" cellpadding="0" width="100%">
  {if $orderSum.shipping_name ne "-"}
  <tr>
    <td class="padt" align="left" valign="middle">{$smarty.const.STRING_SHIPPING_TYPE_MAKE}: <b>{$orderSum.shipping_name}{if $orderSum.shippingServiceInfo} ({$orderSum.shippingServiceInfo}){/if}</b></td>
  </tr>
  {/if}
  {if $orderSum.payment_name ne "-"}
  <tr>
    <td class="padt" align="left" valign="middle">{$smarty.const.STRING_PAYMENT_TYPE_MAKE}: <b>{$orderSum.payment_name}</b></td>
  </tr>
  {/if}
  <tr>
    <td class="padt" align="left" valign="middle">{$smarty.const.STRING_TARGET_SHIPPING_ADDRESS}: <b>{$orderSum.shipping_address|replace:"<":"&lt;"|replace:"&lt;br>":", "}</b></td>
  </tr>
</table>
<br>
<table cellspacing="0" cellpadding="0" width="100%">
  <tr>
    <td class="hdbtop" align="left"><form name='MainForm' method="POST" action="" id="MainForm">
        {$orderSum.payment_form_html}
        {$smarty.const.STRING_ORDER_COMMENT}:
        <div class="fil1"></div>
        <textarea name="order_comment" cols="54" rows="7"></textarea>
        <input type="hidden" name="submitgo" value=1>
        <input type="hidden" name='totalUC' value='{$totalUC}'>
      </form></td>
  </tr>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tr>
    <td class="hdbot">{$smarty.const.STRING_FORMALIZE_ORDER_1}</td>
  </tr>
  <tr>
    <td class="hdbot"><a href="#" onclick="document.getElementById('MainForm').submit(); return false;">{$smarty.const.STRING_FORMALIZE_ORDER}</a></td>
  </tr>
</table>
{/if}
{/if}
{/if}

  Ответить  
 
 автор: confirm   (03.09.2013 в 20:22)   письмо автору
 
   для: kery   (03.09.2013 в 20:02)
 

Я же писал, что вставить вы может что угодно и куда угодно. Вплоть, что выбросить эту ссылку и вместо нее кнопку.

Собственно, если так хочется, отправляйте ссылкой, но по условию - проверяя, если чекбокс выбран, то document.getElementById('MainForm').submit(), иначе return false.

Просто казуистика a href="#" onclick=... до того уже ..., что и говорить на эту тему не охота.

  Ответить  
 
 автор: kery   (03.09.2013 в 21:21)   письмо автору
 
   для: confirm   (03.09.2013 в 20:22)
 

так я же и хочу узнать как лучше просто с конкретным примером что сделать в моем случае как ее заменить? я просто вообще не знаю Java и для меня это белый лист

  Ответить  
 
 автор: confirm   (03.09.2013 в 21:30)   письмо автору
 
   для: kery   (03.09.2013 в 21:21)
 

Так покажите, где в вашем коде чекбокс по которому надо контролировать отправку формы? Что-то я не нахожу его, слишком много лишнего выставлено.

  Ответить  
 
 автор: kery   (03.09.2013 в 21:32)   письмо автору
 
   для: confirm   (03.09.2013 в 21:30)
 

я его и хочу вставить в эту форму чтобы тот код который я привел т.е. эта ссылка или заменить ее на кнопку была не активной, а сейчас там чекбокса нет а вот сама эта форма с ссылкой которая ее отправляет
<td class="hdbtop" align="left"><form name='MainForm' method="POST" action="" id="MainForm">
        {$orderSum.payment_form_html}
        {$smarty.const.STRING_ORDER_COMMENT}:
        <div class="fil1"></div>
        <textarea name="order_comment" cols="54" rows="7"></textarea>
        <input type="hidden" name="submitgo" value=1>
        <input type="hidden" name='totalUC' value='{$totalUC}'>
      </form></td>
  </tr>
</table>
<table cellspacing="0" cellpadding="0" width="100%">
    <tr>
    <td class="hdbot">{$smarty.const.STRING_FORMALIZE_ORDER_1}</td>
  </tr>
  <tr>
    <td class="hdbot"><a href="#" onclick="document.getElementById('MainForm').submit(); return false;">{$smarty.const.STRING_FORMALIZE_ORDER}</a></td> 

  Ответить  
 
 автор: confirm   (03.09.2013 в 21:44)   письмо автору
 
   для: kery   (03.09.2013 в 21:32)
 

Ну этот чекбокс, если я правильно понял, отмечает некоторое условие "согласен" или подобное. То есть он должен же располагаться после некоторого текста, с которым и надо ознакомится. А в этом случае почему он должен быть в форме, а не после этого текста?

Понимаете, {$smarty.const.STRING_FORMALIZE_ORDER_1} мне ни о чем не говорит, что эта переменная выводит на страницу, вам да богу известно. Поэтому, вы хотя бы вместо переменных пишите словами, что мол тут это и это, и в этом месте надо расположить... Иначе как можно предлагать какое либо решение.

  Ответить  
 
 автор: moonfox   (03.09.2013 в 23:00)   письмо автору
 
   для: confirm   (03.09.2013 в 21:44)
 


Просто казуистика a href="#" onclick=... до того уже ..., что и говорить на эту тему не охота.


а объективно?
не имеет как по мне разницы.
пусть тогда сделает что-то типа
<span onclick="someFunction()" class="myClass">Запуск JS процедуры</span>

  Ответить  
 
 автор: confirm   (04.09.2013 в 03:52)   письмо автору
 
   для: moonfox   (03.09.2013 в 23:00)
 

А объективно прочтите в сети, потому как здесь я не один раз уже говорил об этом.
Вы знаете, что такое выгода?

  Ответить  
 
 автор: moonfox   (04.09.2013 в 18:05)   письмо автору
 
   для: confirm   (04.09.2013 в 03:52)
 

...

  Ответить  
 
 автор: kery   (04.09.2013 в 07:29)   письмо автору
 
   для: confirm   (03.09.2013 в 21:44)
 

$smarty.const.STRING_FORMALIZE_ORDER_1

Это и есть как раз константа которая выводит текст о том что пользователь должен ознакомится т.е. поставить галочку,
потом должен быть чекбокс и собственно отправка, которая сейчас выглядит таким образом
<a href="#" onclick="document.getElementById('MainForm').submit(); return false;">{$smarty.const.STRING_FORMALIZE_ORDER}</a>

  Ответить  
 
 автор: confirm   (04.09.2013 в 09:08)   письмо автору
 
   для: kery   (04.09.2013 в 07:29)
 

Ну и делайте так, как я показывал выше, только сначала нужно сделать следующее:
1. Замечание - если ваши таблицы выводят действительно табличные данные, все нормально, но если таблицы как элементы форматирования, то это зря.
2. Вынести теги формы за таблицы, так, чтобы таблицы были дочерними элементами формы.
3. Добавить ранее предложенный код.
4. Если тег формы имеет указанный стиль и этот стиль будет сказываться на таблицах, то переопределить стили формы.


<form name='MainForm' method="POST" action="" id="MainForm">
<table cellspacing="0" cellpadding="0" width="100%"> 
  <tr> 
    <td class="hdbtop" align="left"> 
        {$orderSum.payment_form_html} 
        {$smarty.const.STRING_ORDER_COMMENT}: 
        <div class="fil1"></div> 
        <textarea name="order_comment" cols="54" rows="7"></textarea> 
        <input type="hidden" name="submitgo" value=1> 
        <input type="hidden" name='totalUC' value='{$totalUC}'> 
      </td> 
  </tr> 
</table> 
<table cellspacing="0" cellpadding="0" width="100%"> 
    <tr> 
    <td class="hdbot">{$smarty.const.STRING_FORMALIZE_ORDER_1}
 <label><input type="checkbox" name="yes" onclick="this.form.send.disabled = !this.checked" /> Прочел, согласен и т.п......</label></td> 
  </tr> 
  <tr> 
    <td class="hdbot"><button name="send" disabled="1">Отправить</button></td> 
  </tr> 
</table>
</form>


Чекбокс помещен в тег LABEL, зачем читайте по ссылке.

  Ответить  
 
 автор: kery   (04.09.2013 в 10:57)   письмо автору
 
   для: confirm   (04.09.2013 в 09:08)
 

ок сейчас протестирую

  Ответить  
 
 автор: moonfox   (04.09.2013 в 18:11)   письмо автору
 
   для: kery   (04.09.2013 в 10:57)
 

для конферма

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

между прочим чел задал вполне очень и очень простой вопрос, а вы разведи демагогию, более того не отправили его к матчасти, можно было просто показать пример как с его href="#" так и использованием любого другого элемента.

  Ответить  
 
 автор: confirm   (04.09.2013 в 18:45)   письмо автору
 
   для: moonfox   (04.09.2013 в 18:11)
 

Прочтите еще раз, но только внимательно, вдумчиво.

Прочтите и это, для вас будет полезно.

А теперь о демагогии.

Вот чтобы понять почему <a href="#" onclick... плохо, если в этом нет надобности, нужно хорошо знать html элементы, их назначение, возможности. Это знание позволяет выбирать именно те, которые не только будут оптимальны для поставленной задачи, но и выгоны.

Ответьте на эти вопросы:

1. Чем характеризуется чекбокс как элемент взаимодействия с пользователем?
2. Чем являет эта характеристика чекбокса?
3. Обладает ли подобным (п. 2) тег A или SPAN?
4. Есть ли подобное (п. 2) среди элементов формы?
5. Если ответы будут правильны, то что выгоднее в данном случае использовать тег А, тег SPAN, или же элементы формы обладающие из п. 2.

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

Почитайте об интерфейсах, как неудачное из этого можете проанализировать неудачи Windows 8.

Создание ПО, это не по принцип "а все так пишут, да тегчик симпатичный, сойдет", а думать, искать более выгодные решения. А для этого мало копировать примеры, нужно их понимать.

  Ответить  
 
 автор: moonfox   (04.09.2013 в 20:40)   письмо автору
 
   для: confirm   (04.09.2013 в 18:45)
 

и снова все вокруг да около... все это я читал)
и опять повторюсь - это не объективно, надо учитывать каждый отдельный случай.

и я что-то вас не понял... причем тут чекбокс?
вас задело использование решетки на на ссылке, которая по желанию человека задавшего вопрос должна была сабмитить форму)
это все понятно и очевидно что незачем вообще ссылку использовать как сабмит)
но вопрос в корне был задан не об этом!
можно было навесить js на его ссылку-сабмит и проверять чек на отметку.
более того эта ссылка всего ничего лишь отправка формы, да просто запретить ее индексацию

просто из вопроса на 5 мин выросла тема о том как может не стоит делать...
типа чел приехал заклеять шину на СТО а ему под рассказали что у него движок тарахтит и в салоне сидения потертые)
чтож может быть вы тогда перевестаете ему сайт да заодно посмотрите его пхп код?
может еще что "неправильное" ?)))

приятного времени суток!

  Ответить  
 
 автор: confirm   (04.09.2013 в 21:02)   письмо автору
 
   для: moonfox   (04.09.2013 в 20:40)
 

Значит вы просто не понимаете, а другими словами этого написать нельзя.

Именно надо учитывать все, а не "случаи", впрочем данный случай уж никак не обязывает использование вместо предназначенных для этого элементов, элемент который для этого совсем не предназначен. Если вы считаете, что дать команду браузеру перейти на якорь, а потом сообщить ему "а я пошутил", таким оправданным случаем, то о чем можно вообще говорить?

Не о чем говорить, если вы не поняли при чем тут чекбокс, бессмысленно.

  Ответить  
 
 автор: moonfox   (04.09.2013 в 21:34)   письмо автору
 
   для: confirm   (04.09.2013 в 21:02)
 

забавно)))))))))))
очевидно чекбокс "демонстрирует" состояние) а далее программист задает поведение при наличии/отсутствии отметки)))

а в целом я считаю вообще пофигу)
главное чтоб юзер получил конечный результат)
будь у него там на ссылке переход на страницу я б еше по возмущался
а так) чего парится) можно вообще не иметь тега форм) и отдавать аяксом всю эту лебуду)

далее еще можно по возмущаться на это
cellspacing="0" cellpadding="0" width="100%"
class="hdbtop" align="left"
и на наличие div в td
и так далее и тому подобное)))))))))
это вас не беспокоит?

а давайте прикинем что будет с его кнопкой если js отключен?)
вы придирчивы но не до конца всеж все обозреваете наверно)

  Ответить  
 
 автор: confirm   (04.09.2013 в 21:40)   письмо автору
 
   для: moonfox   (04.09.2013 в 21:34)
 

Меня беспокоит только одно, когда люди болтают, не понимая даже самих себя.

  Ответить  
 
 автор: moonfox   (04.09.2013 в 21:48)   письмо автору
 
   для: confirm   (04.09.2013 в 21:40)
 

можете писать как вам угодно)
я прекрасно понимаю что чем чревато и что где пишут и пропагандируют
задача сайта не правильность придерживания всех стандартов, это вас работодатель будет проверять как вы там в новинках и тенденциях разбираетесь.
задача сайта донести информацию а подходов всегда множество...
и не пишите про выгоду!
я когда програмил свою 0дминку переписывал ее в течении долгого времени кучи раз!
и до сих пор не до конца! ибо выгода на текущем этапе упирается опять таки в свое представление о необходимости и простоте использовании чего либо выбранного.
+ стандарты) если вам показалось я что против них, так это вам показалось))))

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

  Ответить  
 
 автор: confirm   (04.09.2013 в 21:53)   письмо автору
 
   для: moonfox   (04.09.2013 в 21:48)
 

Судя по той пурге, которую вы тут несли, и у вас знаний маловато, а те что имеются не системные.

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования