onchange submit

obqvi_in

Registered
Здравейте, използвам 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>
Всички останали без днешният(който е selected) се събмитват, а аз искам всички. Благодаря предварително.
 
obqvi_in каза:
Здравейте, използвам 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>
Всички останали без днешният(който е selected) се събмитват, а аз искам всички. Благодаря предварително.
Защото събмитваш формата преди да се е changeнал този select. Махни този onchange и сложи един <input type=submit> преди края на формата.
 
По-скоро защото се обръщаш към формата с this. Използввай jquery

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

[js]<select onchange="document.theForm.submit();">..[/js]
- тук има някви примери: http://stackoverflow.com/questions/9855656/how-to-submit-a-form-using-javascript :?:
 
joTunkiq каза:
По-скоро защото се обръщаш към формата с this. Използввай jquery

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

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

HTML:
onchange="setTimeout(this.form.submit.bind(this), 20);"

Не съм сигурен как точно се правеше, май беше .apply()...
 
Благодаря на всички искам да стане без type='submit' тоест без бутон пробвах всичко което сте ми дали и пак същото.
 
obqvi_in каза:
Благодаря на всички искам да стане без type='submit' тоест без бутон пробвах всичко което сте ми дали и пак същото.

Всички останали без днешният(който е selected) се събмитват, а аз искам всички. Благодаря предварително.

Ти си дал само един select. Казваш, че нищо не се праща ако има само 1 селект във формата? Защото гледам че по твоя оригиналния начин трябва да работи. Сигурно имаш други евенти, които прекъсват изпращането.
 

Горе