2014-01-11 156 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”,则将其设置为“隐藏”。