HTML code
<form id = "numbersdescendingodd">
Resultdescendingodd : <input type = "text" name = "resultdescendingodd" id = "dodd" max = "20"><br>
<input type = "button" onclick = "descendingodd()" value = "Clickhere">
<br>
</form>
Javascript code
function descendingodd(){
var x = 0
for(var i = 21 ; i>=1; i-=2){
var result = document.getElementById('dodd');
result.value = (`${i}`)
}
}
i want my output textbox are : 21,19,17,15,etc
You are setting the textbox's value to each descending odd number one at a time and so once your code finishes running it will be left set to the last number (1).
Try changing result.value = (${i}) to result.value += i + ','. It won't do exactly what you want (it'll have a comma after the last number) but I'm guessing you'll be able to figure it out from there.
Replace your descendingodd function with this
function descendingodd(){
var x = "";
var result = document.getElementById('dodd');
for(var i = 21 ; i>=1; i-=2){
x += i;
x += ",";
}
result.value = x;}
function descendingodd() {
const text = document.getElementById('dodd').value;
const numbers = text.split(',').map(Number);
const r = numbers.sort(function(a, b){return b-a});
document.getElementById('dodd').value = r.join();
}
<form id = "numbersdescendingodd">Resultdescendingodd :
<input type = "text" name = "resultdescendingodd" id = "dodd" max = "20" value="5,17,21,19"><br>
<input type = "button" onclick = "descendingodd()" value = "Clickhere">
<br>
</form>