Reputation: 385
I'm using following codes in a JSP page.This is my function to change button text by a button click in JavaScript.
<script>
function click(){
var el=document.getElementById(btnaccept);
if(el.value=="Accept"){
el.value==="Accepted";
}else{
el.value==="Accept";
}
}
</script>
This is my button;
<button type="button" class="btn btn-default btn-sm" id="btnaccept" onclick="click()">
<span class="glyphicon glyphicon-ok" aria-hidden="true" name="accept"></span> Accept
</button>
This code is not functioning when I click the "Accept" button. What error I have done here?
Upvotes: 4
Views: 1972
Reputation: 1
I implemented a toggle button for a colapsible panel in the following way:
<button type="button" class="btn btn-default" onclick="changeIcon(this)">
<span class="glyphicon glyphicon-triangle-bottom"></span>
</button>
<script>
function changeIcon(button) {
if(button.firstElementChild.getAttribute("class") == "glyphicon glyphicon-triangle-bottom")
{
button.firstElementChild.setAttribute("class", "glyphicon glyphicon-triangle-top");
}
else
{
button.firstElementChild.setAttribute("class", "glyphicon glyphicon-triangle-bottom");
}
}
</script>
Upvotes: 0
Reputation: 7701
First thing you should use click
as function name use any other name.
It will treat it as mouseevent docs
===
is used for comparison to assign value use =
.
Here I have used clickbutton()
instead of click()
for the function name.
HTML
<button type="button" class="btn btn-default btn-sm" id="btnaccept" onclick="clickbutton()">
Script
function clickbutton() {
var el = document.getElementById('btnaccept');
if (el.value == "Accept") {
el.value = "Accepted";
} else {
el.value = "Accept";
}
}
Upvotes: 2
Reputation: 4292
Try this code
<script>
function click1() {
var el = document.getElementById('btnaccept');
//alert(el.innerHTML);
if (el.textContent == "Accept") {
el.textContent = "Accepted";
} else {
el.textContent = "Accept";
}
}
</script>
change onclick event to click1()
Upvotes: 3
Reputation: 8276
A few things:
click
that won't work.document.getElementById
takes string as argument, so you want to write there document.getElementById('btnaccept');
=
to assign value ===
is comparison (equal value or type)Upvotes: 2
Reputation: 309
As mattt said, you need to use the assignment operator =
instead of the equality operator ===
when assigning values. Also, when using getElementById
, it will be expecting a string, so you want to use getElementById("btnaccept");
As well, to set the text of a button element I believe you will need to use el.innerText = "Accept";
Upvotes: 1