更新:我发现它不仅仅是来自帖子的返回数据。从字面上看,每个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 . .
}
编辑如果我运行下面的代码,那么警告始终是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
...
答案 0 :(得分:1)
我认为你有一个错误:
function( data ) {
if ( returnedData == "Company Added" ) { //right here
$( '#navAdmin' ).click() ;
} else {
alert( data ) ;
}
}
应该是
function( data ) {
if ( data == "Company Added" ) {
$( '#navAdmin' ).click() ;
} else {
alert( data ) ;
}
}
答案 1 :(得分:1)
我尝试了你的JS代码。
if ( btnName != cancel ) {
// This function is normal
} else {
// This function is also work
}
这适用于我的机器和浏览器。和你的(如果代码也有效,否则为其他)。
Chrome 44.0.2403.157(64位)
答案 2 :(得分:0)
我不知道它发生在哪里,但是当我分配一个变量时,例如;
$( '.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
函数中,它也正常运行。我不知道额外空间的来源,欢迎任何其他想法。如果我在这里做了一些可怕的错误,请告诉我..