onchange submit

Post Reply
obqvi_in
Нов
Нов
Posts: 148
Joined: Wed Apr 18, 2012 5:24 pm

onchange submit

Post by obqvi_in » Fri Nov 11, 2016 7:33 pm

Здравейте, използвам onchange="this.form.submit();" за един селект.[html]
<form method="POST">
<select name="select_day" style="font: bold 20px tahoma; width:150px;" onchange="this.form.submit();">
<option <? if(date("l") == 'Tuesday') { echo 'selected'; } ?> value="вторник">вторник</option>
<option <? if(date("l") == 'Wednesday') { echo 'selected'; } ?> value="сряда">сряда</option>
<option <? if(date("l") == 'Thursday') { echo 'selected'; } ?> value="четвъртък">четвъртък</option>
<option <? if(date("l") == 'Friday') { echo 'selected'; } ?> value="петък">петък</option>
</select>
</form>[/html]
Всички останали без днешният(който е selected) се събмитват, а аз искам всички. Благодаря предварително.

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1580
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Re: onchange submit

Post by anonimen » Sat Nov 12, 2016 10:19 am

obqvi_in wrote:Здравейте, използвам onchange="this.form.submit();" за един селект.[html]
<form method="POST">
<select name="select_day" style="font: bold 20px tahoma; width:150px;" onchange="this.form.submit();">
<option <? if(date("l") == 'Tuesday') { echo 'selected'; } ?> value="вторник">вторник</option>
<option <? if(date("l") == 'Wednesday') { echo 'selected'; } ?> value="сряда">сряда</option>
<option <? if(date("l") == 'Thursday') { echo 'selected'; } ?> value="четвъртък">четвъртък</option>
<option <? if(date("l") == 'Friday') { echo 'selected'; } ?> value="петък">петък</option>
</select>
</form>[/html]
Всички останали без днешният(който е selected) се събмитват, а аз искам всички. Благодаря предварително.
Защото събмитваш формата преди да се е changeнал този select. Махни този onchange и сложи един <input type=submit> преди края на формата.

joTunkiq
Потребител
Потребител
Posts: 827
Joined: Tue Dec 25, 2012 10:03 am
Answers: 142
Contact:

Post by joTunkiq » Sat Nov 12, 2016 3:42 pm

По-скоро защото се обръщаш към формата с this. Използввай jquery

[js]<select onchange="$('#myForm').submit();">..[/js]
Ако държиш много да ползвашш чист js кода тие :

[js]<select onchange="document.theForm.submit();">..[/js]
- тук има някви примери: http://stackoverflow.com/questions/9855 ... javascript :?:

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1580
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Sat Nov 12, 2016 5:27 pm

joTunkiq wrote:По-скоро защото се обръщаш към формата с this. Използввай jquery

[js]<select onchange="$('#myForm').submit();">..[/js]
Ако държиш много да ползвашш чист js кода тие :

[js]<select onchange="document.theForm.submit();">..[/js]
- тук има някви примери: http://stackoverflow.com/questions/9855 ... javascript :?:
По-добре с this. Иначе трябва да слага name на формата или да включва jQuery... напълно излишно. Много по-лесно става с this.form.submit(). Но просто по този начин няма да стане, защото той праща формата преди да е променен select-ът. Ще проработи ако сложи кратък timeout, но според мен по-добре с обикновен input type=submit.
Иначе:

[html]onchange="setTimeout(this.form.submit.bind(this), 20);"[/html]

Не съм сигурен как точно се правеше, май беше .apply()...

obqvi_in
Нов
Нов
Posts: 148
Joined: Wed Apr 18, 2012 5:24 pm

Post by obqvi_in » Sun Nov 13, 2016 9:23 am

Благодаря на всички искам да стане без type='submit' тоест без бутон пробвах всичко което сте ми дали и пак същото.

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1580
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Sun Nov 13, 2016 11:02 am

obqvi_in wrote:Благодаря на всички искам да стане без type='submit' тоест без бутон пробвах всичко което сте ми дали и пак същото.
Всички останали без днешният(който е selected) се събмитват, а аз искам всички. Благодаря предварително.
Ти си дал само един select. Казваш, че нищо не се праща ако има само 1 селект във формата? Защото гледам че по твоя оригиналния начин трябва да работи. Сигурно имаш други евенти, които прекъсват изпращането.

Post Reply