Редактирование существующего ввода .val () без влияния на другие входные значения val ()

0

Это не будет проблемой для большинства из вас, но я не могу отслеживать или думать, что делать, чтобы решить этот вопрос, который у меня есть. Посмотрите здесь FIDDLE

В этой функции он должен отредактировать значение ввода и только отправить на этот вход, его, как в моем коде el относится ко всем элементам, которые были нажаты.

Я думаю, что код объясняет мой угол, плохо вставьте некоторый jQuery здесь, если вам нужно больше просто спросить.

var app = {

sendEditDataToApp: function (el) {

    //Type of element to send
    var elType = jQuery(el).prev().attr('name')

    //Element data
    var elVal = jQuery(el).prev().val()

    //Match the edit element with the element constructor
    var inConstructor = jQuery(el).closest('.display-data').prev()

    inConstructor.addClass('opened')

    //Send to app
    jQuery('.builder .send').click(function () {

        //Set new data input value
        jQuery(el).parent().find('input').val(inConstructor.find(this).prev().val())
        alert(inConstructor.find(this).prev().val())

        inConstructor.removeClass('opened')

    });


}

}

jQuery('.open').click(function(e) {
    e.preventDefault()
    app.sendEditDataToApp(this)
})

HTML:

<div class="builder">
    <input value="" />
    <button class="send">Send</button>
</div>

<div class="display-data">  
<div class="row"> 
<input name="html" value="input 1" />
<button class="open">Open</button>
</div>

<div class="row"> 
<input name="html" value="input 2" />
<button class="open">Open</button>
</div>

<div class="row"> 
<input name="html" value="input 3" />
<button class="open">Open</button>
</div>  
</div>

Мой код получает .val() ввода, я не уверен, почему его добавление ко всем входам, когда я думал, что использование this и el будет относиться только к конкретному входному клику.

Имейте в виду, я переписал этот код, чтобы подобрать лучшую скрипку, основанную на логике моего реального кода, некоторые были скопированы и вставлены из моего реального кода, большинство было переиздано. Основная цель - отредактировать конкретный вход, из которого пришел открытый клик.

Я бы сказал, что основное внимание следует сосредоточить на jQuery(el).parent().find('input').val(inConstructor.find(this).prev().val())

(ПРЕДУПРЕЖДЕНИЕ: это может быть неправильное утверждение, моя логика здесь) el относится к первому элементу .open, и this относится к .send. Я нахожу конкретный вход, из которого .open, а затем установите это значение как находящееся внутри значения inConstructor после щелчка на this .send. Поэтому мне нужно получить значение ввода и поместить его в конкретный jQuery(el).parent().find('input') <- не все те, которые были нажаты.

Теги:

1 ответ

0

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

var app = {

    sendEditDataToApp: function (el) {

        //Type of element to send
        var elType = jQuery(el).prev().attr('name')

        //Element data
        var elVal = $(el).prev().val()

        //Match the edit element with the element constructor
        var inConstructor = $(el).closest('.display-data').prev()

        inConstructor.addClass('opened')

        //Send to app
        $('.builder .send').click(function (ev) {
            //Set new data input value
            $(el).parent().find('input').val(inConstructor.find(this).prev().val())
            alert(inConstructor.find(this).prev().val())            
            inConstructor.removeClass('opened');
            $(this).unbind('click');
            return false;

        });


    }

}

jQuery('.open').click(function(e) {
    e.preventDefault();
    e.stopImmediatePropagation();
    app.sendEditDataToApp(this);
    return false;
})

скрипка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню