2015-09-17 56 views
1

我試圖做一些按鈕CSS更改onload取決於使用jQuery 1.9.1的文本框的值,但我無法做到這一點。假設頁面加載後,如果文本框的值爲YES,那麼按鈕顏色應該是綠色,如果另一個文本框的值是NO,那麼按鈕顏色應該是藍色。在HTML中,只有「藍色」類被指定爲默認,但jQuery必須改變該onload。這裏是我的代碼:根據jQuery中的文本框值onload更改CSS樣式?

$(document).ready(function() { 
    $('.btn').load(function() { 
     var isYes = $(this).next('.assignCheck').val('Y'); 
     if (isYes) { 
      $(this).toggleClass('color-blue color-green'); 
     } 
    }); 
}); 

JSFiddle Demo

如何可以根據頁面加載後給出的值更改CSS樣式?

回答

1

UPDATE

工作方案,

$('.btn').each(function() { 
    if ($(this).next('.assignCheck').val() == 'y') { 
     $(this).toggleClass('color-blue color-green'); 
    } 
}); 

JSFiddle Demo

你的第一個問題是這樣的一行:

var isYes = $(this).next('.assignCheck').val('Y'); 

那是什麼做的是沒有測試它,它正在分配'y'值爲.assignCheck。你需要的是這樣的:

var isYes = ($(this).next('.assignCheck').val() == 'y'); 

或只是

if ($(this).next('.assignCheck').val() == 'y') { 
    $(this).toggleClass('color-blue color-green'); 
} 

更多信息@http://api.jquery.com/val/

其次,​​已被棄用,改爲使用each(),因爲代碼將在文檔加載時運行。

$('.btn').each(function() { ... 
+0

這是我第一次猜測,但它沒有奏效。在您的帖子後再次嘗試。還是行不通。 –

+0

仍然無法正常工作。 –

+1

重做它以使用each()。現在在小提琴工作:http://jsfiddle.net/cygud48a/4/ –