Приправление карри состоит в том при разрушении функции, которая берет несколько аргументов в серию функций, что каждый берет только один аргумент. Вот пример в JavaScript:
function add (a, b) {
return a + b;
}
add(3, 4); // returns 7
Это - функция, которая берет два аргумента, a и b, и возвращает их сумму. Мы теперь приправим эту функцию карри:
function add (a) {
return function (b) {
return a + b;
}
}
Это - функция, которая берет один аргумент, a, и возвращает функцию, которая берет другой аргумент, b, и что функция возвращает их сумму.
add(3)(4);
var add3 = add(3);
add3(4);
первый оператор возвращается 7, как добавление (3, 4) оператор. Второй оператор определяет новую функцию, вызванную add3, который добавит 3 к его аргументу. Это - то, что некоторые люди могут назвать закрытием. Третий оператор использует add3 операцию для добавления 3 - 4, снова производя 7 в результате.
способ обмана намного лучше и был моей первой идеей. В качестве альтернативы, если это не сработает, вы можете использовать неразрывные пробелы в значении тега:
<select>
<option>select me</option>
<option> me indented</option>
<option> even more indentation</option>
</select>
Это далеко не красиво, но может сработать для вас, если optgroup этого не сделает.
Отображение элементов SELECT
в значительной степени зависит от браузера, вы очень мало влияете на их представление. Некоторые браузеры, очевидно, позволяют больше настроек, чем другие, IE позволяет очень мало ( вздох , кто бы подумал;)). Если вам нужны очень индивидуальные элементы SELECT
, вам нужно будет использовать JavaScript или воссоздать что-то, что ведет себя как SELECT
, но состоит из группы DIV
] и флажки или что-то в этом роде.
Сказав это, я думаю, что вы ищете OPTGROUP
s :
<select>
<optgroup label="xxx">
<option value="xxxx">xxxx</option>
....
</optgroup>
<optgroup label="yyy">
...
</optgroup>
</select>
Каждый браузер отображает их по-разному, но они так или иначе будут отображаться в отличительной форме. Обратите внимание, что официально в HTML4 вы можете '
Разве это не метод группировка создает больше проблем, чем решает? Что я должен выбрать как пользователь? Есть ли какие-либо преимущества в выборе чего-то более конкретного, чем страна?
Если проблема в том, что у вас есть только одно поле базы данных для их хранения, почему бы не иметь три отдельных поля выбора (делая 2 или 3 необязательными) и просто хранить большинство конкретный?:
<select name="country">
<option>Choose a country</option>
<option>United States</option>
</select>
<select name="state">
<option>Choose a state</option>
<option>Hawaii</option>
</select>
<select name="city">
<option>Choose a city</option>
<option>Kauai</option>
</select>