问题:
更新:我发现它不仅仅是从帖子中返回的数据。实际上,每个if
else
语句几乎完全忽略了我的变量
我试着做一些非常简单的事情来验证我上面的陈述。
当执行下面的代码时,不会发生任何事情。我在if语句之前添加了consol.log()
(代替警报(,以确保它将数据发送到DOM,并且是.
HTML
<input type='submit' name='Confirm' class='button' value='Confirm' >
<input type='submit' name='Cancel' class='button' value='Cancel' >
JS
$( '.button' ).on( 'click' , function() {
var btnName = $( this ).attr( 'name' ) ;
var cancel = "Cancel" ;
var confirm = "Confirm" ;
alert( btnName + cancel + confirm ) ;
if ( btnName == cancel ) {
//some function here . .
} else if ( btnName == confirm ) {
//some function here . .
}
EDIT如果我运行下面的代码,那么警报总是Cancel
。。。什么软糖
$( '.button' ).on( 'click' , function() {
var btnName = $( '.button' ).attr( 'name' ) ;
if ( btnName == "Cancel" ) {
alert( 'Cancel' ) ;
} else if ( btnName == "Confirm" ) {
alert( 'Confirm' ) ;
}
无论我单击什么,if
语句中的函数都不会运行。奇怪的是,当它点击alert( btnName + cancel + confirm ) ;
时,浏览器中警报的数据是准确的,就像在中一样,如果我点击name='Confirm'
,警报输出看起来像ConfirmCancelConfirm
。。。
我假设您有一个错误:
function( data ) {
if ( returnedData == "Company Added" ) { //right here
$( '#navAdmin' ).click() ;
} else {
alert( data ) ;
}
}
应该是
function( data ) {
if ( data == "Company Added" ) {
$( '#navAdmin' ).click() ;
} else {
alert( data ) ;
}
}
我试过你的JS代码。
if ( btnName != cancel ) {
// This function is normal
} else {
// This function is also work
}
这是我的机器和浏览器上的工作。和您的(if-else-else-if代码也可用(。
Chrome 44.0.2403.157(64位(
终于找到了我的问题
我不知道它发生在哪里,但例如,当我分配一个变量时;
$( '.button' ).on( 'click' , function() {
var btnName = $( this ).attr( 'name' ) ;
}
出于某种原因,在字符串之前添加了一堆whiteSpace。
开始使用:
$( '.button' ).on( 'click' , function() {
var btnName = $( this ).attr( 'name' ) ;
var trimmedData = ( btnName ).trim() ;
if ( trimmedData == "Confirm" ) {
alert( "Confirm" ) ;
} else if ( trimmedData == "Cancel" ) {
alert( "Cancel" ) ;
}
我把它放在我的$.post
函数中,它也在工作。我不知道额外的空间是从哪里来的,欢迎其他想法。如果我在这里做错了什么,请告诉我。。