我需要在单击按钮后显示“不显示”消息。点击两次后返回原始消息“显示”。我已经做过的第一件事,我只需要帮助第二件事,即第二次点击。
JavaScript的:
function show()
{
document.myform.button.value ="Dont show";//Changes message on button when clicked.
document.myform.button.innerHTML= "Dont show";
}
HTML:
<form>
<input type=button value= "Show" name="button" id= "idButton"
onClick="show()">
</form>
答案 0 :(得分:1)
我建议:
function toggle(el, message1, message2) {
if (!el || !message1 || !message2) {
return false;
}
var text = el.tagName.toLowerCase() == 'input' ? el.value : (el.textContent || el.innerText),
newText = text == message1 ? message2 : message1;
if (el.tagName.toLowerCase() == 'input') {
el.value = newText;
}
else {
el.firstChild.nodeValue = newText;
}
}
document.getElementById('idButton').onclick = function(){
toggle(this, 'Show', "Don't show");
};
以上的略微修订版本:
function isTag(el, tagname) {
if (!el || !tagname) {
return false;
}
else {
return el.tagName.toLowerCase() == tagname.toLowerCase() ? true : false;
}
}
function toggle(el, message1, message2) {
if (!el || !message1 || !message2) {
return false;
}
else {
var isInput = isTag(el, 'input'),
text = isInput ? el.value : el.textContent || el.innerText,
newText = text == message1 ? message2 : message1;
if (isInput) {
el.value = newText;
}
else if (el.textContent) {
el.textContent = newText;
}
else {
el.innerText = newText;
}
}
}
document.getElementById('idButton').onclick = function(){
toggle(this, 'Show', "Don't show");
};
答案 1 :(得分:0)
您的函数show需要检查当前按钮值并将其设置为适当的新值。
我认为show函数体周围缺少的括号是一个错字。