Jump to content
  • 0

Select


buddah
 Share

  

6 members have voted

You do not have permission to vote in this poll, or see the poll results. Please sign in or register to vote in this poll.

Question

Я как-то старался избегать формы Select. А там, где все-таки приходилось с ней работать - оставлял в стандартном виде, иногда меняя цвета, размеры и границы. А в текущем проекте все-таки решил использовать эмуляцию формы. Итак у меня два вопроса:

Во-первых хотелось бы узнать ваше мнение по этому поводу, поделитесь опытом, как чаще всего поступаете?

Во-вторых поделитесь ссылкой на хорошее железобетонное решение эмуляции Select. Гуглом пользоваться умею, мне важно именно те решения, которые использовались вами на практике и в которых вы более-менее уверены.

Спасибо всем, кто поделится опытом.

Опа, а вот и косяк форума обнаружился.

Пропала голосовалка и название темы.

Warning: reset() [function.reset]: Passed variable is not an array or object in /storage/home/srv11181/htdocs/absolvo/www/htmlbook.ru/forum/admin/applications/forums/modules_public/forums/topics.php on line 1223

Warning: Invalid argument supplied for foreach() in /storage/home/srv11181/htdocs/absolvo/www/htmlbook.ru/forum/admin/applications/forums/modules_public/forums/topics.php on line 1225

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Че в голосовалке должно быть? Поправлю.

Предлагаю такое решение собственного изобретения. В ИЕ6 не работает конечно, но кому он нужен... Кое-какой функционал можно дописать яваскриптом при желании.

  • Like 1
Link to comment
Share on other sites

  • 0

На счет голосовалки вопрос: Как вы поступаете с формой Select на сайте чаще всего?

И три варианта ответа: 1) Оставляю в стандартном виде. 2)Меняю размеры, фон, границы. 3)Пишу эмуляцию формы.

За решение спасибо большое, буду изучать.

Link to comment
Share on other sites

  • 0

Предлагаю такое решение собственного изобретения. В ИЕ6 не работает конечно, но кому он нужен... Кое-какой функционал можно дописать яваскриптом при желании.

В своей статье ты пишешь:

<select name="domen" onchange="this.parentNode.getElementsByTagName('input')[0] .value = this.options[this.selectedIndex].innerHTML;">
<option value="1">opt 1</option>
<option value="2">opt 2</option>
<option value="3">opt 3</option>
<option value="4">opt 4</option>
</select>

Это безоговорочно подходит если нужны парочка кастомных селектов. А что можно сделать если шаблонизатор уже подставляет свой код для выборки нужных значений (в моем случае Smarty)?

Сейчас на сайте вот такая конструкция:

<div class="variant">
<form action=cart method=get>
<p>
{if $product->variants|@count > 1}
<select class="grm" name=variant_id onchange="display_variant({$product->product_id}, this.value);return false;">
{foreach from=$product->variants item=variant}
<option value='{$variant->variant_id|escape}'>{$variant->name|escape}<strong></strong><br>
{/foreach}
</select>
<input type=button class="link_to_cart" onclick="document.cookie='from='+location.href+';path=/';this.form.submit();">
<br>
{elseif $product->variants|@count == 1}
<input type=hidden name=variant_id value='{$product->variants[0]->variant_id}'>
<input type=button class="link_to_cart" onclick="document.cookie='from='+location.href+';path=/';this.form.submit();">
{/if}
</p>
</form>
</div>

Возможно ли что-то сделать в таком случае?

п.с. оффтоплю немного, как-то незаметно от JS и общей темы перешел на php и конкретику. Сорри.

Edited by buddah
Link to comment
Share on other sites

  • 0

Он выбирает несколько значений. Ну и пусть себе выбирает. Все что нужно от селека это чтоб он вставит выбранное значение туда где юзер его увидит.


this.parentNode.getElementsByTagName('input')[0] .value = this.options[this.selectedIndex].innerHTML;

Этот код занимается только этим. Можно оформить его в функцию и подключать как-то так (Смарти совсем не знаю):


<select class="grm" name=variant_id onchange="display_variant({$product->product_id}, this.value); showValue(this, elem); return false;">

  • Like 1
Link to comment
Share on other sites

  • 0

Я пробую способ что описан в ссылке выше он то работает хорошо, но у меня 2 селекта подряд, и когда я выбираю значение в первом второй исчезает из кода только новый фон его остается, я яваскрипт не очень и не могу никак въехать в чем проблема...

P.S. Всем спс, методом научного тыка понял, что селекты должны быть одного класса, тогда все норм

Edited by SovaBarmak
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy