Может ли кнопка отправки в форме php также быть якорем? - PullRequest
2 голосов
/ 17 сентября 2011

Чтобы настроить продукт перед добавлением в корзину, я использую php-форму с двумя точками отправки - загрузите изображение и прикрепите текст.Вместо того, чтобы страница обновлялась вверх после каждого нажатия кнопки, я хочу установить привязку ближе к следующему шагу и использовать кнопку как <a href="#"></a>.

Это код кнопки загрузки:

    <div id="virtueupl_form" style='width:100%'>
    <form id="adminForm" name="adminForm"  action="<?php echo JRoute::_('index.php?option=com_virtueupload&view=form'); ?>" method="post" enctype="multipart/form-data" onSubmit="return checkForm();">
    <table width="130px" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="70px" colspan="2" valign="top">
    <label for="file"><?php echo VUOutput::_('YLANG_FORM_LBL_FILE'); ?></label>     <br/>
    <input name="file" type="file" />
    <input id="upload_button" class="button" type="submit" value="<?php echo VUOutput::_('YLANG_UPLOAD'); ?>" onclick="this.form.status.value = '<?php echo VUOutput::_('YLANG_STAT_INITUPL'); ?> '; $('spinner').style.display = 'block';  this.form.status.style.color = '#339900'; " />   
</td>
</tr>

Куда относится тег привязки, чтобы отправить его в одно и то же место после нажатия кнопки?Точно так же, после «прикрепления текста» я хотел бы не требовать от пользователя прокрутки вниз от верхней части страницы до следующей части формы.Я пробовал различные мероприятия, но, не зная, что я делаю, я не добился успеха.

Когда я искал этот форум (и другие), мне удалось найти только простую структуру привязки html или обсуждения об использовании кнопки отправки вместо текстовой ссылки.Я думаю, что понимаю, как работают якоря, я просто не могу понять, как настроить его в форме с другими событиями, запускаемыми той же кнопкой.Из того, что я прочитал, кажется, что команда «onclick» также важна, но я не смог найти ничего очевидного для своего ограниченного опыта.Возможно, я не ищу правильные термины?

Спасибо.

1 Ответ

5 голосов
/ 18 сентября 2011

Кнопки отправки - это специальные кнопки, которые автоматически вызывают событие submit формы.Используя любой другой способ, вы должны вручную вызвать событие из Javascript.

Например, используя якорь, вы получите что-то вроде

<form id="frm" name="frm" action="" method="get">
  <input type="hidden" name="someinput1" value="hello" />
  <input type="hidden" name="someinput2" value="world" />
  <a href="#" onclick="document.forms['frm'].submit();">Submit</a>
</form>

Обычно использование кнопки отправки предпочтительнеев отличие от любого другого метода, так как он не зависит от Javascript и по умолчанию локализован в локали браузера.Вы можете на самом деле иметь кнопку отправки и просто стилизовать ее с помощью CSS.И иметь более одной кнопки отправки в одной и той же форме тоже хорошо.

Также обратите внимание, что в некоторых примерах событие вызывается из атрибута href , но я этого не делаю.рекомендуйте этот IMO, так как он предоставляет Javascript подсказке привязки пользователя (когда указатель мыши находится на ссылке, вы можете увидеть содержимое его атрибута href внизу страницы).

Наконец, вы можетеиспользовать практически любой элемент, чтобы вызвать событие отправки формы!Рассмотрим это, например, (используя jQuery):

<form id="frm" name="frm" action="" method="get">
  <input type="hidden" name="someinput1" value="hello" />
  <input type="hidden" name="someinput2" value="world" />
  <div id="elemSubmit" style="text-align:center; border:1px solid black;">Submit</div>
</form>
<script type="text/javascript">
   $(function() {
      $('elemSubmit').click(function() { $('#frm').submit(); });
   });
</script>
...