【问题标题】:Jquery Impromptu 4jQuery即兴4
【发布时间】:2012-08-22 12:29:38
【问题描述】:

我在使用即兴(jquery 插件)时遇到了困难,我不断得到一个未定义的值。这是一个例子:

<img id=dispatch title='Click to dispatch(COMING SOON)' onclick=Dispatch(0) src='../images/icons/truck_green.png' width=16 height=16/>
<img id=dispatch title='Click to dispatch(COMING SOON)' onclick=Dispatch(1) src='../images/icons/truck_green.png' width=16 height=16/>
<img id=dispatch title='Click to dispatch(COMING SOON)' onclick=Dispatch(2) src='../images/icons/truck_green.png' width=16 height=16/>
<img id=dispatch title='Click to dispatch(COMING SOON)' onclick=Dispatch(3) src='../images/icons/truck_green.png' width=16 height=16/>

function Dispatch(id){
           var driver = 'Enter the drivers name:<br><input type="text" id="alertName" name=myname value="" />';

           $.prompt(driver,{   
                    submit: myfunc,
                    buttons: { Ok:true }                         
            });
        }  

function myfunc(e,v,m,f){                
            var an = m.children('#alertName');

            if(f.alertName == ""){
                    an.css("border","solid #ff0000 1px");
                    return false;
            }
            return true;
        }

最终我想获取输入的 id 和名称并执行一些 AJAX。但我无法得到 css 的变化。我提醒 f.alertName 并得到未定义,我不知道为什么。感谢您的帮助。

【问题讨论】:

    标签: jquery-plugins impromptu


    【解决方案1】:

    我相信你想要f.myName。学习使用调试器逐步完成并检查对象。答案很快就变得显而易见了。

    http://jsfiddle.net/ULeQz/1/

    var driver = 'Enter the drivers name:<br><input type="text" id="alertName" name="myname" value="" />';
    
    $.prompt(driver, {
        submit: myfunc,
        buttons: {
            Ok: true
        }
    });
    
    function myfunc(e, v, m, f) {
        debugger;
        var an = m.children('#alertName');
    
        if (f.myname == "") {
            an.css("border", "solid #ff0000 1px");
            return false;
        }
        return true;
    }​
    

    【讨论】:

    • 我对调试器一无所知,反正 alertName 和 myname 不应该指向同一个元素吗?
    • @LouieV - myname 是对象 f 的属性。 f 不是一个元素,所以你没有指向它。 f 对象由插件创建。尝试在 Chrome 中按 F12。这会调出调试器。通过在代码中放置debugger; 行,您可以强制设置断点。然后您可以检查变量和对象以及这些对象的属性。
    • 谢谢。使用 myname 解决了它,虽然我不明白为什么在插件页面上的示例中使用 id alertName。
    • @LouieV - 在该示例中,idname 是相同的。在你的,你改变了name。它从一开始就没有使用 id 这个例子,它总是使用 name。你只是解释错了。
    猜你喜欢
    • 2011-07-24
    • 2013-01-08
    • 2013-07-07
    • 2012-04-10
    • 2012-05-09
    • 2012-05-26
    • 1970-01-01
    • 2023-03-27
    • 2023-03-06
    相关资源
    最近更新 更多