2014-01-11 212 views
0

我想切換顯示/隱藏值到我的按鈕,嘗試了很多,但沒有任何工作。這是我的答案。提前致謝。切換功能jquery

function SLIDE_HIDE(SLIDEID){ 
    $("#"+SLIDEID).prop('value', 'HIDE'); 
    $("#"+SLIDEID).prop('value', 'SHOW'); 
} 

HTML/PHP代碼

<input id=\"$OPID\" onclick='SLIDE_HIDE($OPID);' class=\"slidehide\" type=\"button\" value=\"HIDE\" > 
+0

這就是我的例子bro,一個僞 – user3183972

回答

0

如果你要問的是如何來回切換使用你提供的代碼,然後做這樣的事情:

function SLIDE_HIDE(SLIDEID) 
{ 
    if ($('#' + SLIDEID).prop('value').toUpperCase() == "SHOW") { 
     $("#"+SLIDEID).prop('value', 'HIDE'); 
    } else { 
     $("#"+SLIDEID).prop('value', 'SHOW'); 
    } 
} 

如果你正在尋找一種方法來做到這一點,因爲.prop實際上沒有設置按鈕值:

你試過.attr o r .val?

不太清楚你想要做什麼的問題,但下面的任何一個可能工作。此外,這可能是顯而易見的,但是您不能像在您的示例中那樣背對背地運行這兩行,或者它總是以「SHOW」結尾。

$("#"+SLIDEID).attr('value','show'); 
// or 
$("#"+SLIDEID).val('show'); 

當然

$("#"+SLIDEID).attr('value','hide'); 
// or 
$("#"+SLIDEID).val('hide'); 
0

試試這個:

$("#"+SLIDEID).val(function(i,oldVal) { 
    return oldVal === "HIDE" ? "SHOW" : "HIDE"; 
}); 

演示:http://jsfiddle.net/Q5SBj/2/

需要注意的是,如果你的PHP變量$OPID是一個字符串,那麼你就需要在通過它時加上引號,如下所示:onclick='SLIDE_HIDE(\"$OPID\");'

.val() method接受函數作爲參數,其中jQuery將調用該函數傳遞該元素的舊值,然後將該值設置爲您從該函數返回的任何值。

請注意,如果你的元素可以通過類來選擇"slidehide"你可以刪除內聯onclick="..."屬性的分配使用jQuery的處理程序:

$(document).ready(function() { 
    $(".slidehide").click(function() { 
     $(this).val(function(i,oldVal) { 
      return oldVal === "HIDE" ? "SHOW" : "HIDE"; 
     }); 
    }); 
}); 

演示:http://jsfiddle.net/Q5SBj/

(文檔準備包裝ISN如果將腳本包含在主體尾部,則不需要。)

0

您的函數不檢查舊值。嘗試在函數中運行if/else語句來檢查當前值並將其設置爲相反。例如:如果它的值爲「HIDE」,則將其設置爲「SHOW」。如果它的值爲「SHOW」,則將其設置爲「隱藏」。