Javascript:输入值在回调函数中被解释为未定义的参数

时间:2013-06-06 18:57:24

标签: jquery forms jquery-plugins jquery-callback

我遇到了从jQuery插件传递String值到回调函数的问题:

这是插件中的代码

tempField.on("keydown", function (e){
    if (e.which === 13) {
    var hiddenField = $('input[name="hiddenField"]');
        var textValue = $(this).val();
        var textColor = settings.color;
        var font = settings.textSize;
        var removeInputHandle = $(this).remove();
        var setText = textElement.show();
    }

    if(textValue != ""){
        hiddenField.val(textValue).change();
        textElement.text(textValue);
        textElement.css("color", textColor);
        textElement.css("font-size", font);
        settings.callback(textValue);
    }

    if(e.keyCode === 13){
        removeInputHandle;
        setText;
    }

    return textValue;
});

和主js文件中的代码

var setTitle = function (title){
    title = presTitle;
    var presTitle = app.presentation.title;
    console.log(presTitle);
};

$("#presentationTitle").inline({
    callback: setTitle
});

现在,这里的回调函数正在通过$ .extend函数替换插件文件中定义的回调函数(只是为了没有人混淆)。

我正在尝试使用textValue来设置对象中字段的值。但是这个值必须是一个字符串......并且该值不作为字符串传递,并被解释为undefined或null;尽管它给出了alfa数值。

EX:

说,我进入了输入字段,输入了输入字段。该值将是someinputinthisinputfield。

我需要它是“someinputinthisinputfield”。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您需要在第一个var textValue语句之前初始化if。目前,您没有返回任何内容,因为textValue将在return返回的范围内不存在tempField.on("keydown", function(e) { var textValue; ... }); 。您需要类似

的内容
textValue

您可以将""初始化为if,也可以在第二次{{1}}检查中使用。