开发者

Submit form when selected value of select element is changed without javascript

开发者 https://www.devze.com 2023-02-04 14:51 出处:网络
Hi the question is pretty simple. <select name=\"justanumber\"> <option value=\"1\" selected=\"selected\">1</option>

Hi the question is pretty simple.

<select name="justanumber">
    <option value="1" selected="selected">1</option>
    <option value="2"></option>
</select>

when selected value is changed i have to do a form post. But the prob开发者_StackOverflow中文版lem is to do this WITHOUT javascript.

I'm not sure is it possible to do that, the best result i have archived is submit form using label for.


No, that is not possible without using client script.

I suggest that you use script for how you want it to work normally, and supply a submit button as a backup for those who can't use script.


No, there is no auto-submit attribute for such things -- however, there is a way around it:

CSS:

#jsOn .Submit {
   display: none;
}

HTML:

<form id="my_form" action="">
<select id="justanumber" name="justanumber">
    <option value="1" selected="selected">1</option>
    <option value="2"></option>
</select>
<input type="submit" value="Go!" class="Submit" />
</form>

JavaScript:

var visible_root = document.getElementsByTagName("body");
while (visible_root.length < 1) {
    continue;
}
visible_root = visible_root[0];
visible_root.id = "jsOn";
document.getElementById("justanumber").onchange = function() {
    document.getElementById("my_form").submit();
};

When people without JavaScript arrive at your site they will see a submit button. When people with JavaScript turned on arrive at your site the submit button will be hidden and an onchange event will be added to the select element. (Alternately you could add an event listener, if you have a JavaScript library that normalizes all of the events for you.)


I don't believe this is possible without js. An obvious approach would be to set a submit button as the option's value (eg, <option><input type="submit"></option>). Unfortunately browsers will bark and moan, appending the input element after the select element. If the select determines the app flow, consider using another another UI element (eg, buttons, links, etc.).


Here is the answer. Unfortunately, It's not possible.


<form action="aaa.php" method="post" name="autosubmit_select">
<select name="justanumber" onChange="document.autosubmit_select.submit();">
    <option value="1" selected="selected">1</option>
    <option value="2"></option>
</select>
</form>


agreed you must use javascript for this

please see this post How to submit form on change of dropdown list?

if your worried about users not having javascript enabled then i would suggest along with the given example in the post in the link you do this

<noscript>This form requires that you have javascript enabled to work properly please enable javascript in your browser.</noscript>

or something along those lines

other than that it is not possible to do this (currently) without the use of javascript


use a submit_button to submit while JS not enabled. If JS enabled hide the button using JavaScript. Amazon did so.!

http://www.amazon.in/s/ref=nb_sb_ss_i_1_5?url=search-alias%3Delectronics&field-keywords=sd+card&sprefix=sd+ca%2Celectronics%2C401&crid=1M4KMJEGDLTEL

disable JS and see the sortby section top right corner.

0

精彩评论

暂无评论...
验证码 换一张
取 消