Заставьте невидимые текстовые поля иметь значение «0» или «» - PullRequest
0 голосов
/ 21 июля 2011

Я знаю, что это довольно грязно, но я настолько близок к решению, что мне пришлось опубликовать это.

У меня есть форма с двумя флажками, которые переключают, видны ли соответствующие пролеты.num_bw и num_c - это диапазоны, которые содержат поля ввода, в которые пользователь помещает, сколько из двух типов продуктов он хочет.Я обеспокоен тем, что пользователь может поместить число в текстовое поле, которое временно отображается (скажем, первое, в промежутке num_bw), но затем передумает, снимает этот флажок и помещает число в поле.вместо этого в промежутке num_c.

Как работает этот код, поле num_bw теперь будет невидимым, но оно может по-прежнему содержать число! Если он нажмет на submit, пользователь может быть удивлен, увидев, что эти 3 черныхи белые продукты, которые он больше не хочет, все еще в его корзине!Woops!

Поэтому мне нужно проверить, находятся ли какие-либо из этих двух текстовых полей (их имена orderquantitybw и orderquantityc, я также могу добавить идентификаторы, если мне нужно) в диапазоне, который теперь невидим (#num_bw и#num_c), и если они есть, чтобы превратить их значение в ничто, ноль, пшик, "", то, что не запутает программное обеспечение корзины для покупок (что не является моим отделом, то, как оно работает, немного непрозрачно для меня.)

Это в голове, оно просто делает эти промежутки невидимыми в начале:

    $(document).ready(function() {
    $('#num_bw').hide();
    $('#num_c').hide();
    });

Это сразу после рассматриваемой формы, оно делает промежутки видимыми или невидимыми, когдапользователь нажимает на флажки:

$('#show_c').click(function(){
$('#num_c').toggle();
});
$('#show_bw').click(function(){
$('#num_bw').toggle();
});

И я хочу добавить функцию до конца.Я остановился, едва не написав это.Любая помощь?

    $('#submit_btn').click(function(){

    /*Insert script to turn form box's values to "0" if 
    they are in an invisible span*/

    )};

Ответы [ 3 ]

0 голосов
/ 21 июля 2011
$('#submit_btn').click(function(){
    $("#num_bw, #num_c").filter(':hidden').find('input').val('0');
});
0 голосов
/ 21 июля 2011
$("#num_bw:hidden").val(0)
$("#num_c:hidden").val(0)

должен это сделать.Или вы можете сделать что-то вроде этого:

$(".quantityTextBox:hidden").val(0)

для текстовых полей с классом "amountTextBox"

0 голосов
/ 21 июля 2011

Попробуйте это

$('#submit_btn').click(function(){

    $("#num_bw, #num_c").each(function(){
       if(!$(this).is("visible")){
         $(this).find("input").val("0")
       }
    });

)};
...