如何获取jQuery事件处理程序的返回值

时间:2012-06-07 22:40:56

标签: javascript jquery

我有id="something"的链接:

HTML

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

的javascript

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

我需要在使用时获取返回值:

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

如何获取事件的返回值?

html标记中已经提到了onclick函数。我想用:

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

从那以后我想获得回报价值。

由于我必须在多个地方使用它,我不想一次又一次地写getReturnValue()方法:

click(function(){ getReturnValue() })

我需要这样做

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

click()将调用getReturnValue(),它将进行一些验证。如果验证失败,则返回false,我不需要提交表单。如果验证成立,我需要提交表格

5 个答案:

答案 0 :(得分: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});

答案 1 :(得分:1)

您可以做的是创建一个jQuery事件对象并将其传递给click处理程序。

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

if (e.validResult) {
    //action
}

如果验证成功,您必须稍微修改点击处理程序以获取事件对象并设置validResult属性。

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

答案 2 :(得分:1)

以下是有关如何访问 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/了解更多详情。

答案 3 :(得分:0)

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

这是你想要的吗?

LE:这意味着你改变了

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

答案 4 :(得分:0)

你试图在点击事件上运行两个不同的功能, 也许你需要删除内联代码(onclick =“func()”)并将其放在你的脚本中

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

我真的不明白你的问题......