2012-06-07 2 views
1

У меня есть связь с id="something":Как получить JQuery обработчик события возвращаемого значения

HTML

<a id="something" onclick="getReturnValue()"> Something </a> 

Javascript

function getReturnValue(){ 
    //some validation 
    if(validation fails){ 
    return false; 
    }else{ 
    return true; 
    } 
} 

Мне нужно, чтобы получить возвращаемое значение когда Я использую:

$("#something").click(); 

Как получить возвращаемое значение для мероприятия?

Функция onclick уже упоминается в теге html. Я хотел использовать:

$("#something").click(); 

И от этого я хотел получить возвращаемое значение.

Как я должен использовать его в нескольких месте, я не хочу писать getReturnValue() метод снова и снова, как:

click(function(){ getReturnValue() }) 

мне нужно сделать, это

if($("#something").click() == true){ 
    form.submit(); 
} 

нажмите() будем называть getReturnValue(), который будет выполнять некоторую проверку. Если проверка не удалась, она возвращает false, и мне не нужно отправлять форму. Если валидация верна, мне необходимо подать форму

+0

Я не могу понять, почему вы хотите получить значение из обработчика событий. – nebulousGirl

+0

Мне нужно это сделать if ($ ("# something"). Click() == true) { form.submit(); } click() вызовет функцию getReturnValue(), которая будет выполнять некоторую проверку. Если проверка не удалась, она возвращает false, и мне не нужно отправлять форму. Если проверка правильна, мне нужно отправить форму – Tivakar

+0

Если вы хотите сделать некоторую проверку формы перед подачей заявки, вы просто приняли неправильный подход. Вы усложняете свой код. См. Мой ответ ниже. – nebulousGirl

ответ

1

Чтобы сделать некоторые формы проверки, вы можете сделать что-то подобное:

$('#myForm').submit(function(e) { 
    if() {//Validation rules failed 
     e.preventDefault(); //Prevent browsers from submitting 
    } 
    //Form is valid do nothing and let the form submit 
}); 

Теперь на кнопке:

$("#something").click(function() {$('#myForm').submit();//Calls function from above}); 
0
$("#something").click(function() { 
    var x = getReturnValue(); 
}); 

это то, что вы хотите?

LE: и это означает, что ваши изменения от А до

<a id="something"> Something </a> 
+0

@Tivakar, поэтому вы хотите запустить событие click из javascript и получить его значение –

+0

да !!! Я должен запускать событие click() несколько раз, поэтому я не хочу использовать $ («# something»). Click (function() { var x = getReturnValue(); }); Было бы лучше получить результаты возврата от $ ("# something"). Click(); – Tivakar

0

вы пытаетесь запустить две различные функции на событие щелчка, может быть, вам нужно удалить встроенный код (OnClick = «Func()») и поместить это в сценарии

$("#something").click(
    function(){ 
    var returnValue = getReturnValue(); 
    } 
); 

Я не очень понимаю ваш вопрос, хотя ...

+0

@ Tivakar Да, вы сказали это, но что вы подразумеваете под «получить возвращаемое значение». Возвратное значение от чего? Что вы хотите сделать с этим возвращаемым значением? – Bojangles

+0

Возвращаемое значение должно быть отправлено из метода gerReturnValue(). Основываясь на возвращаемом значении, мне нужно представить разные формы. – Tivakar

1

Что вы можете сделать, это создать объект события JQuery и передать в обработчик щелчка.

var e = jQuery.Event('click'); 
$('#something').click(e) 

if (e.validResult) { 
    //action 
} 

Вы должны изменить обработчик щелчка несколько принять объект события и установить validResult свойство, если проверка прошла успешно.

function getReturnValue(e) { 
    //some validation 
    if (valid) { 
     e.validResult= true; 
    } 
} 
0

Вот пример того, как вы можете получить доступ к return data from event handler.

var a; 
$(document).on('a', function(e){ 
    $(document).trigger(a = $.Event('sum', {datas: e.datas})); 
}); 
$(document).on('sum', function(e){ 
    return e.datas; 
}); 
$(document).trigger($.Event('a', {datas: [1,2,3]})); 
console.log(a.result);//[1,2,3] 

Вы меняете его своей целью. проверьте здесь https://api.jquery.com/event.result/ для более подробной информации.

Смежные вопросы