我想将显示/隐藏值切换到我的按钮,尝试了很多但没有任何效果。这是我的意思。提前致谢。
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 :(得分:0)
如果您要求的是如何使用您提供的代码来回切换,那么请执行以下操作:
function SLIDE_HIDE(SLIDEID)
{
if ($('#' + SLIDEID).prop('value').toUpperCase() == "SHOW") {
$("#"+SLIDEID).prop('value', 'HIDE');
} else {
$("#"+SLIDEID).prop('value', 'SHOW');
}
}
如果你正在寻找一种方法,因为.prop实际上并没有设置按钮值:
你尝试过.attr或.val吗?不确定问题想要做什么,但下面的任何一个都可行。此外,这可能是显而易见的,但您不能像在示例中那样背对背地运行两条线,否则它将始终以“显示”结束。
$("#"+SLIDEID).attr('value','show');
// or
$("#"+SLIDEID).val('show');
当然
$("#"+SLIDEID).attr('value','hide');
// or
$("#"+SLIDEID).val('hide');
答案 1 :(得分: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";
});
});
});
(如果在主体末尾包含脚本,则不需要文档就绪包装器。)
答案 2 :(得分:0)
您的功能不会检查旧值。尝试在函数中运行if / else语句来检查当前值并将其设置为相反的值。示例:如果其值为“HIDE”,则将其设置为“SHOW”。如果它的值为“SHOW”,则将其设置为“HIDE”。