Javascript Jquery临时回调问题-$。提示失败

Javascript Jquery临时回调问题-$。提示失败,javascript,jquery,jquery-ui,impromptu,Javascript,Jquery,Jquery Ui,Impromptu,我对$.prompt有一个问题,特别是内联表单的回调函数 现在,实际的具体问题如下。如果提交时email\u address字段为空,我无法获得$提示(“请为客户提供电子邮件地址”),但是如果我将其更改为alert(“请为客户提供电子邮件地址”),它将起作用 我猜这是一个范围问题,因为另一个$.prompt调用按预期工作,我假设这是因为它们位于$.post回调函数中 我一直在努力寻找大量关于回调表单功能的文档,虽然我觉得我理解e、v和f变量,但m(消息)不是我以前使用过的。当我将m记录到控制台日

我对$.prompt有一个问题,特别是内联表单的回调函数

现在,实际的具体问题如下。如果提交时
email\u address
字段为空,我无法获得
$提示(“请为客户提供电子邮件地址”)
,但是如果我将其更改为
alert(“请为客户提供电子邮件地址”)
,它将起作用

我猜这是一个范围问题,因为另一个
$.prompt
调用按预期工作,我假设这是因为它们位于
$.post
回调函数中

我一直在努力寻找大量关于回调表单功能的文档,虽然我觉得我理解
e
v
f
变量,但
m
(消息)不是我以前使用过的。当我将
m
记录到控制台日志时,它看起来像jQuery即兴对象,但是我不确定如何访问它的属性。我试过
m.prompt()
$.m.prompt()
,但这些只是我如何访问
prompt
函数的猜测

Javascript

var txt = '<input type="text" name="email_address" value="" />';

function mycallbackform(e,v,m,f)
{  
    if(v != undefined)  
    {  
        if (v == true)  
        {  
            console.log(f);  
            if (f.email_address.length == 0)  
            {  
                console.log(m);  
                $.prompt('Please supply an email address for the customer');  
            }  
            else  
            {  
                $.post('". $this->view->url(array(), 'admin-create-user-from-checkout') ."', f, function(data) {  
                if(data.status)  
                {  
                    $.prompt('Customer Record Created Successfully');  
                }  
                else  
                {  
                    $.prompt('Customer Record could not be created');  
                    $('#email_address').val($('#old_email_address').val());  
                }  
            }, 'json');  
        }  
    }  
    else  
    {  
        $('#email_address').val($('#old_email_address').val());  
    }  
}  

$.prompt(txt,{callback: mycallbackform, buttons: { Ok: true, Cancel: false }});
Object[div.jqimessage]          
0
    div.jqimessage

context
    undefined

jquery
    "1.7.2"

length
    1

prevObject
    Object[div#jqi_state_state0.jqi_state]

selector
    ".children(#jqi) #jqi_st...0.children(.jqimessage)"

constructor
    function()

init
    function()

_toggle
    function()

add
    function()

addClass
    function()

affix
    function()

after
    function()

ajaxComplete
    function()

ajaxError
    function()

ajaxSend
    function()

ajaxStart
    function()

ajaxStop
    function()

ajaxSuccess
    function()

alert
    function()

andSelf
    function()

animate
    function()

append
    function()

appendTo
    function()

attr
    function()

before
    function()

bind
    function()

blur
    function()

button
    function()

carousel
    function()

change
    function()

children
    function()

clearQueue
    function()

click
    function()

clone
    function()

closest
    function()

collapse
    function()

contents
    function()

contextmenu
    function()

css
    function()

data
    function()

dblclick
    function()

delay
    function()

delegate
    function()

dequeue
    function()

detach
    function()

die
    function()

domManip
    function()

dropdown
    function()

each
    function()

empty
    function()

end
    function()

eq
    function()

error
    function()

extend
    function()

fadeIn
    function()

fadeOut
    function()

fadeTo
    function()

fadeToggle
    function()

filter
    function()

find
    function()

first
    function()

focus
    function()

focusin
    function()

focusout
    function()

get
    function()

has
    function()

hasClass
    function()

height
    function()

hide
    function()

hover
    function()

html
    function()

index
    function()

innerHeight
    function()

innerWidth
    function()

insertAfter
    function()

insertBefore
    function()

is
    function()

keydown
    function()

keypress
    function()

keyup
    function()

last
    function()

live
    function()

load
    function()

map
    function()

modal
    function()

mousedown
    function()

mouseenter
    function()

mouseleave
    function()

mousemove
    function()

mouseout
    function()

mouseover
    function()

mouseup
    function()

next
    function()

nextAll
    function()

nextUntil
    function()

not
    function()

off
    function()

offset
    function()

offsetParent
    function()

on
    function()

one
    function()

outerHeight
    function()

outerWidth
    function()

parent
    function()

parents
    function()

parentsUntil
    function()

popover
    function()

position
    function()

prepend
    function()

prependTo
    function()

prev
    function()

prevAll
    function()

prevUntil
    function()

promise
    function()

prompt
    function()

promptDropIn
    function()

prop
    function()

push
    push()

pushStack
    function()

queue
    function()

ready
    function()

remove
    function()

removeAttr
    function()

removeClass
    function()

removeData
    function()

removeProp
    function()

replaceAll
    function()

replaceWith
    function()

resize
    function()

revmaxslide
    function()

revnext
    function()

revolution
    function()

revpause
    function()

revprev
    function()

revresume
    function()

revshowslide
    function()

scroll
    function()

scrollLeft
    function()

scrollTop
    function()

scrollspy
    function()

select
    function()

serialize
    function()

serializeArray
    function()

show
    function()

siblings
    function()

size
    function()

slice
    function()

slideDown
    function()

slideToggle
    function()

slideUp
    function()

sort
    sort()

splice
    splice()

stop
    function()

submit
    function()

swipe
    function()

tab
    function()

text
    function()

toArray
    function()

toggle
    function()

toggleClass
    function()

tooltip
    function()

transit
    function()

transition
    function()

trigger
    function()

triggerHandler
    function()

typeahead
    function()

unbind
    function()

undelegate
    function()

unload
    function()

unwrap
    function()

val
    function()

waitForImages
    function()

width
    function()

wrap
    function()

wrapAll
    function()

wrapInner
    function()

__proto__
    Object[]
问题解决了

@link: https://github.com/trentrichardson/jQuery-Impromptu/issues/6
引用

var txt = '<input type="text" name="email_address" value="" />';

function mycallbackform(e,v,m,f)
{  
    if(v != undefined)  
    {  
        if (v == true)  
        {  
            console.log(f);  
            if (f.email_address.length == 0)  
            {  
                console.log(m);  
                $.prompt('Please supply an email address for the customer');  
            }  
            else  
            {  
                $.post('". $this->view->url(array(), 'admin-create-user-from-checkout') ."', f, function(data) {  
                if(data.status)  
                {  
                    $.prompt('Customer Record Created Successfully');  
                }  
                else  
                {  
                    $.prompt('Customer Record could not be created');  
                    $('#email_address').val($('#old_email_address').val());  
                }  
            }, 'json');  
        }  
    }  
    else  
    {  
        $('#email_address').val($('#old_email_address').val());  
    }  
}  

$.prompt(txt,{callback: mycallbackform, buttons: { Ok: true, Cancel: false }});
Object[div.jqimessage]          
0
    div.jqimessage

context
    undefined

jquery
    "1.7.2"

length
    1

prevObject
    Object[div#jqi_state_state0.jqi_state]

selector
    ".children(#jqi) #jqi_st...0.children(.jqimessage)"

constructor
    function()

init
    function()

_toggle
    function()

add
    function()

addClass
    function()

affix
    function()

after
    function()

ajaxComplete
    function()

ajaxError
    function()

ajaxSend
    function()

ajaxStart
    function()

ajaxStop
    function()

ajaxSuccess
    function()

alert
    function()

andSelf
    function()

animate
    function()

append
    function()

appendTo
    function()

attr
    function()

before
    function()

bind
    function()

blur
    function()

button
    function()

carousel
    function()

change
    function()

children
    function()

clearQueue
    function()

click
    function()

clone
    function()

closest
    function()

collapse
    function()

contents
    function()

contextmenu
    function()

css
    function()

data
    function()

dblclick
    function()

delay
    function()

delegate
    function()

dequeue
    function()

detach
    function()

die
    function()

domManip
    function()

dropdown
    function()

each
    function()

empty
    function()

end
    function()

eq
    function()

error
    function()

extend
    function()

fadeIn
    function()

fadeOut
    function()

fadeTo
    function()

fadeToggle
    function()

filter
    function()

find
    function()

first
    function()

focus
    function()

focusin
    function()

focusout
    function()

get
    function()

has
    function()

hasClass
    function()

height
    function()

hide
    function()

hover
    function()

html
    function()

index
    function()

innerHeight
    function()

innerWidth
    function()

insertAfter
    function()

insertBefore
    function()

is
    function()

keydown
    function()

keypress
    function()

keyup
    function()

last
    function()

live
    function()

load
    function()

map
    function()

modal
    function()

mousedown
    function()

mouseenter
    function()

mouseleave
    function()

mousemove
    function()

mouseout
    function()

mouseover
    function()

mouseup
    function()

next
    function()

nextAll
    function()

nextUntil
    function()

not
    function()

off
    function()

offset
    function()

offsetParent
    function()

on
    function()

one
    function()

outerHeight
    function()

outerWidth
    function()

parent
    function()

parents
    function()

parentsUntil
    function()

popover
    function()

position
    function()

prepend
    function()

prependTo
    function()

prev
    function()

prevAll
    function()

prevUntil
    function()

promise
    function()

prompt
    function()

promptDropIn
    function()

prop
    function()

push
    push()

pushStack
    function()

queue
    function()

ready
    function()

remove
    function()

removeAttr
    function()

removeClass
    function()

removeData
    function()

removeProp
    function()

replaceAll
    function()

replaceWith
    function()

resize
    function()

revmaxslide
    function()

revnext
    function()

revolution
    function()

revpause
    function()

revprev
    function()

revresume
    function()

revshowslide
    function()

scroll
    function()

scrollLeft
    function()

scrollTop
    function()

scrollspy
    function()

select
    function()

serialize
    function()

serializeArray
    function()

show
    function()

siblings
    function()

size
    function()

slice
    function()

slideDown
    function()

slideToggle
    function()

slideUp
    function()

sort
    sort()

splice
    splice()

stop
    function()

submit
    function()

swipe
    function()

tab
    function()

text
    function()

toArray
    function()

toggle
    function()

toggleClass
    function()

tooltip
    function()

transit
    function()

transition
    function()

trigger
    function()

triggerHandler
    function()

typeahead
    function()

unbind
    function()

undelegate
    function()

unload
    function()

unwrap
    function()

val
    function()

waitForImages
    function()

width
    function()

wrap
    function()

wrapAll
    function()

wrapInner
    function()

__proto__
    Object[]
在新的事件系统中,回调绑定到提示符上。因此,必须在销毁提示之前调用回调。“即兴”不适用于同时进行多个提示

如果您想解决这个问题,一个简单的解决方案是设置超时(10,function(){$.prompt(…);});在回调的内部。这将使上一个提示有机会关闭

固定Javascript

var txt = '<input type="text" name="email_address" value="" />';

function mycallbackform(e,v,m,f)
{  
    if(v != undefined)  
    {  
        if (v == true)  
        {  
            if (f.email_address.length == 0)  
            {  
                setTimeout(function(){ $.prompt('Please supply an email address for the customer');  }, 10);
            }  
            else  
            {
                $.post('". $this->view->url(array(), 'admin-create-user-from-checkout') ."', f, function(data) {  
                if(data.status)  
                {  
                    $.prompt('Customer Record Created Successfully');  
                }  
                else  
                {  
                    $.prompt('Customer Record could not be created');  
                    $('#email_address').val($('#old_email_address').val());  
                }  
            }, 'json');  
        }  
    }  
    else  
    {  
        $('#email_address').val($('#old_email_address').val());  
    }  
}  

$.prompt(txt,{callback: mycallbackform, buttons: { Ok: true, Cancel: false }});
var-txt='';
函数mycallbackform(e,v,m,f)
{  
如果(v!=未定义)
{  
如果(v==true)
{  
如果(f.email_address.length==0)
{  
setTimeout(函数(){$.prompt('请为客户提供电子邮件地址');},10);
}  
其他的
{
$.post(““$this->view->url(array(),'admin create user from checkout')。”,f,函数(数据){
if(数据状态)
{  
$.prompt('已成功创建客户记录');
}  
其他的
{  
$.prompt('无法创建客户记录');
$('电子邮件地址').val($('旧电子邮件地址').val());
}  
}“json”);
}  
}  
其他的
{  
$('电子邮件地址').val($('旧电子邮件地址').val());
}  
}  
$.prompt(txt,{callback:mycallbackform,按钮:{Ok:true,Cancel:false}});
问题已解决

@link: https://github.com/trentrichardson/jQuery-Impromptu/issues/6
引用

var txt = '<input type="text" name="email_address" value="" />';

function mycallbackform(e,v,m,f)
{  
    if(v != undefined)  
    {  
        if (v == true)  
        {  
            console.log(f);  
            if (f.email_address.length == 0)  
            {  
                console.log(m);  
                $.prompt('Please supply an email address for the customer');  
            }  
            else  
            {  
                $.post('". $this->view->url(array(), 'admin-create-user-from-checkout') ."', f, function(data) {  
                if(data.status)  
                {  
                    $.prompt('Customer Record Created Successfully');  
                }  
                else  
                {  
                    $.prompt('Customer Record could not be created');  
                    $('#email_address').val($('#old_email_address').val());  
                }  
            }, 'json');  
        }  
    }  
    else  
    {  
        $('#email_address').val($('#old_email_address').val());  
    }  
}  

$.prompt(txt,{callback: mycallbackform, buttons: { Ok: true, Cancel: false }});
Object[div.jqimessage]          
0
    div.jqimessage

context
    undefined

jquery
    "1.7.2"

length
    1

prevObject
    Object[div#jqi_state_state0.jqi_state]

selector
    ".children(#jqi) #jqi_st...0.children(.jqimessage)"

constructor
    function()

init
    function()

_toggle
    function()

add
    function()

addClass
    function()

affix
    function()

after
    function()

ajaxComplete
    function()

ajaxError
    function()

ajaxSend
    function()

ajaxStart
    function()

ajaxStop
    function()

ajaxSuccess
    function()

alert
    function()

andSelf
    function()

animate
    function()

append
    function()

appendTo
    function()

attr
    function()

before
    function()

bind
    function()

blur
    function()

button
    function()

carousel
    function()

change
    function()

children
    function()

clearQueue
    function()

click
    function()

clone
    function()

closest
    function()

collapse
    function()

contents
    function()

contextmenu
    function()

css
    function()

data
    function()

dblclick
    function()

delay
    function()

delegate
    function()

dequeue
    function()

detach
    function()

die
    function()

domManip
    function()

dropdown
    function()

each
    function()

empty
    function()

end
    function()

eq
    function()

error
    function()

extend
    function()

fadeIn
    function()

fadeOut
    function()

fadeTo
    function()

fadeToggle
    function()

filter
    function()

find
    function()

first
    function()

focus
    function()

focusin
    function()

focusout
    function()

get
    function()

has
    function()

hasClass
    function()

height
    function()

hide
    function()

hover
    function()

html
    function()

index
    function()

innerHeight
    function()

innerWidth
    function()

insertAfter
    function()

insertBefore
    function()

is
    function()

keydown
    function()

keypress
    function()

keyup
    function()

last
    function()

live
    function()

load
    function()

map
    function()

modal
    function()

mousedown
    function()

mouseenter
    function()

mouseleave
    function()

mousemove
    function()

mouseout
    function()

mouseover
    function()

mouseup
    function()

next
    function()

nextAll
    function()

nextUntil
    function()

not
    function()

off
    function()

offset
    function()

offsetParent
    function()

on
    function()

one
    function()

outerHeight
    function()

outerWidth
    function()

parent
    function()

parents
    function()

parentsUntil
    function()

popover
    function()

position
    function()

prepend
    function()

prependTo
    function()

prev
    function()

prevAll
    function()

prevUntil
    function()

promise
    function()

prompt
    function()

promptDropIn
    function()

prop
    function()

push
    push()

pushStack
    function()

queue
    function()

ready
    function()

remove
    function()

removeAttr
    function()

removeClass
    function()

removeData
    function()

removeProp
    function()

replaceAll
    function()

replaceWith
    function()

resize
    function()

revmaxslide
    function()

revnext
    function()

revolution
    function()

revpause
    function()

revprev
    function()

revresume
    function()

revshowslide
    function()

scroll
    function()

scrollLeft
    function()

scrollTop
    function()

scrollspy
    function()

select
    function()

serialize
    function()

serializeArray
    function()

show
    function()

siblings
    function()

size
    function()

slice
    function()

slideDown
    function()

slideToggle
    function()

slideUp
    function()

sort
    sort()

splice
    splice()

stop
    function()

submit
    function()

swipe
    function()

tab
    function()

text
    function()

toArray
    function()

toggle
    function()

toggleClass
    function()

tooltip
    function()

transit
    function()

transition
    function()

trigger
    function()

triggerHandler
    function()

typeahead
    function()

unbind
    function()

undelegate
    function()

unload
    function()

unwrap
    function()

val
    function()

waitForImages
    function()

width
    function()

wrap
    function()

wrapAll
    function()

wrapInner
    function()

__proto__
    Object[]
在新的事件系统中,回调绑定到提示符上。因此必须在销毁提示符之前调用回调。Impromptu不适用于一次多个提示符

如果您想解决这个问题,一个简单的解决方案是在回调函数中设置timeout(10,function(){$.prompt(…);});这将使上一个提示符有机会关闭

固定Javascript

var txt = '<input type="text" name="email_address" value="" />';

function mycallbackform(e,v,m,f)
{  
    if(v != undefined)  
    {  
        if (v == true)  
        {  
            if (f.email_address.length == 0)  
            {  
                setTimeout(function(){ $.prompt('Please supply an email address for the customer');  }, 10);
            }  
            else  
            {
                $.post('". $this->view->url(array(), 'admin-create-user-from-checkout') ."', f, function(data) {  
                if(data.status)  
                {  
                    $.prompt('Customer Record Created Successfully');  
                }  
                else  
                {  
                    $.prompt('Customer Record could not be created');  
                    $('#email_address').val($('#old_email_address').val());  
                }  
            }, 'json');  
        }  
    }  
    else  
    {  
        $('#email_address').val($('#old_email_address').val());  
    }  
}  

$.prompt(txt,{callback: mycallbackform, buttons: { Ok: true, Cancel: false }});
var-txt='';
函数mycallbackform(e,v,m,f)
{  
如果(v!=未定义)
{  
如果(v==true)
{  
如果(f.email_address.length==0)
{  
setTimeout(函数(){$.prompt('请为客户提供电子邮件地址');},10);
}  
其他的
{
$.post(““$this->view->url(array(),'admin create user from checkout')。”,f,函数(数据){
if(数据状态)
{  
$.prompt('已成功创建客户记录');
}  
其他的
{  
$.prompt('无法创建客户记录');
$('电子邮件地址').val($('旧电子邮件地址').val());
}  
}“json”);
}  
}  
其他的
{  
$('电子邮件地址').val($('旧电子邮件地址').val());
}  
}  
$.prompt(txt,{callback:mycallbackform,按钮:{Ok:true,Cancel:false}});