【问题标题】:Javascript: input value interpreted as undefined parameter in callback functionJavascript:输入值解释为回调函数中的未定义参数
【发布时间】:2013-06-06 18:57:24
【问题描述】:

我在将字符串值从 jQuery 插件传递给回调函数时遇到问题:

这是插件的代码

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 来设置对象中字段的值。但是这个值需要是一个字符串......并且该值不是作为字符串传递的,而是被解释为未定义或空值;尽管它给出了 alfa 数值。

前:

说,我输入了输入字段,someinputinthisinputfield。该值将是此输入字段中的某个输入。

我需要它是“someinputinthisinputfield”。

任何帮助将不胜感激。

【问题讨论】:

    标签: jquery forms jquery-plugins jquery-callback


    【解决方案1】:

    您需要在第一个if 语句之前初始化var textValue。目前,您没有返回任何内容,因为 textValue 不存在于 return 将返回它的范围内。您需要类似

    tempField.on("keydown", function(e) {
        var textValue;
        ...
    });
    

    您可以将textValue 初始化为"",它也将在您的第二次if 检查中起作用。

    【讨论】:

    • 它似乎仍然不起作用。也许我应该在这里使用更好的逻辑
    • @dumble 你的回调是否被触发过?此外,您在 setTitle 函数中调用了一个参数,但从未传入一个参数。
    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多