Как узнать, какое текстовое поле было использовано в функции jquery - PullRequest
1 голос
/ 17 января 2012

У меня есть следующая форма:

<input name="linkColor" type="text" id="colorpickerField0" >
<input name="linkColor" type="text" id="colorpickerField1" >
<input name="linkColor" type="text" id="colorpickerField2" >

В моей функции ниже, как я могу узнать, какое текстовое поле было вызвано. Например, я хочу установить условия в функции onSubmit, где если # colorpickerField0, то делать бла-бла, а если # colorpickerField1, то делать бла-бла-бла и т. Д. И т. Д. Любая помощь будет принята с благодарностью. Спасибо

$('#colorpickerField0, #colorpickerField1, #colorpickerField2').ColorPicker({
    onSubmit: function(hsb, hex, rgb, el) {
        alert($(this));
        // do this if #Field0
        // statements
        // do this if #Field1
        // statements
        // do this if #Field2
        // statemets

        $(el).val(hex);
        $(el).ColorPickerHide();
    },
    onBeforeShow: function () {
        $(this).ColorPickerSetColor(this.value);
    }
})
.bind('keyup', function(){
    $(this).ColorPickerSetColor(this.value);
});

Я использую http://www.eyecon.ro/colorpicker/

Если я сделаю оповещение ($ (this) .attr ('id')); Я получил неопределенное значение, поэтому я все еще не могу сказать, какой из них использовался.

Ответы [ 5 ]

1 голос
/ 17 января 2012

if ($(el).attr('id') == 'colorpickerField0') { ... }

0 голосов
/ 17 января 2012

вы пробовали alert($(el).attr("id"));?

0 голосов
/ 17 января 2012

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

onSubmit: function(hsb, hex, rgb, el) {
                alert($(this));
                            if($(this).attr('id') == "colorpickerField0"){

                            }

                            // do this if #Field0
                            // statements
                            // do this if #Field1
                            // statements
                            // do this if #Field2
                            // statemets
  }
[...]

и т. Д. Для всех объектов.

0 голосов
/ 17 января 2012

Похоже, что параметр el вашей функции onSubmit содержит HTMLElement.Я думаю, что вы должны быть в состоянии switch($(el).attr('id')) { ... }.

0 голосов
/ 17 января 2012

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

onSubmit: function(hsb, hex, rgb, el) {

    var myID = $(this).attr('id');

    if(myID.indexOf('Field0')) {
        // ..
    }
    else if(myID.indexOf('Field1')) {
        // ..
    }
    else if(myID.indexOf('Field2')) {
        // ..
    }

    ...
}
...