Показать сообщение отдельно
  #4 (permalink)  
Старый 04.03.2013, 14:18
Новичок на форуме
Отправить личное сообщение для nsk_1945 Посмотреть профиль Найти все сообщения от nsk_1945
 
Регистрация: 01.03.2013
Сообщений: 6

Наверно я не так изложил свою задумку . Итак имеется некий сайт на котором есть форма поиска с полем input типа text, мне необходимо записывать то что введет пользователь в этот input(то есть то что он ищет). И отправлять эту строку или символ по отправке формы, только не туда куда отправляется сама форма а на свой сайт. Вот что у меня получилось:
function ajax(uOut, searchKW){
    $.ajax({
        type: "POST",
        url: url,
        data: { lang: language,
            ref: referer,
            urlOut: uOut,
            skw: searchKW           
        }});
}

function getChar(event) {
    if (event.which == null) {  // IE
        if (event.keyCode < 32) return null; // спец. символ
        return String.fromCharCode(event.keyCode)
    }

    if (event.which!=0 && event.charCode!=0) { // все кроме IE
        if (event.which < 32) return null; // спец. символ
        return String.fromCharCode(event.which); // остальные
    }

    return null; // спец. символ
}

function searchInfo() {
    var str = "";
    $("input:text").keypress(function(evt){
        str += getChar(evt)+"";
        $("#texy").attr("value", str);
    });

    $("input:text").keydown(function(evt){ // При нажатии на backspace
        if(evt.keyCode == 8){
            str = str.substr(0, str.length-1);
            $("#texy").attr("value", str);
        }
    });

    return $("#texy").attr("value");
}

$(document).ready(function () {
    $("<input>").attr({
        type: "hidden",
        id: "texy"
    }).appendTo("form"); // добавляем скрытое поле для хранения строки

    var infoStr = searchInfo();

    $("input:text").keydown(function(evt){ // Если нажимается любая клавиша в input
        var id = this.parentNode.id;

        if(evt.keyCode == 13){ // Если нажат ENTER

            infoStr = searchInfo(); // Строка поиска

            $(id).submit(ajax("",infoStr));

            $("<img>").attr({
                url: url,
                alt: "img",
                width: "1px",
                height: "1px"
            }).appendTo("#sib");
        }
    });
});

Может весь мой текст глупость и все решается тремя строчками, то прошу хотя бы толкнуть в сторону где искать. Также хотелось бы отметить что данный "костыль" не работает в firefox. Там вообще какие то странности: при попытке вывести alert во время отправки формы, он отображается и сразу пропадает(без моего действия), хотя в других браузерах все норм. Версия лисы 19
Ответить с цитированием