所以我有这个形式,它接收一串需要在每个半冒号和空格分割的数字。然后,它对数字进行排序并返回排序列表。
出于某种原因,当我点击按钮时,它不会在文本框中发布值。
任何人都可以帮我解决我的问题!谢谢。
编辑1:在表单中添加了名称并添加了字段集
function sort() {
var allNumbers = document.mainForm.mainSet.numbers.value.split("; ");
allNumbers.parseFloat;
for (var i = 0; i < allNumbers.length; i++) {
allNumbers[i] = parseInt(allNumbers[i], 10);
}
allNumbers.sort();
document.mainForm.mainSet.sorted.value = allNumbers.toString();
}
&#13;
<form name="mainForm">
<fieldset name="mainSet">
Enter Numbers:
<input type="text" class="text" name="numbers" />
<br/>
<br/>Select Option:
<select name="sortOption" id="dropDown">
<option value="Ascending" class="select">Ascending</option>
<option value="Descending" class="select">Descending</option>
</select>
<br/>
<br/>Sorted Numbers:
<input type="text" class="text" name="sorted">
<br/>
<br/>
<input type="button" value="Sort Numbers" id="submit" onclick="sort()" />
</fieldset>
</form>
&#13;
答案 0 :(得分:0)
我没有看到任何名为&#34; mainForm&#34;或&#34; mainSet&#34;在HTML中。同样,我并不完全确定&#34; allNumbers.parseFloat;&#34;的目的是什么?或者是,因为那不是如何调用函数,而parseFloat不是Array的成员。
答案 1 :(得分:0)
我认为这就是你要找的东西。这将根据您在sortOption
字段中选择的内容对数字进行排序。
var order;
function sort() {
order = document.getElementById("dropDown").value;
var allNumbers = document.getElementById("numbers").value.split("; ");
var nums = [];
for (var i = 0; i < allNumbers.length; i++) {
nums.push(parseInt(allNumbers[i], 10));
}
nums.sort(function(a, b) {
if (a > b)
return order == 'asc' ? 1 : -1;
else
return order == 'asc' ? -1 : 1;
});
document.getElementById("sorted").value = nums.toString();
}
<form name="mainForm">
<fieldset name="mainSet">
Enter Numbers:
<input id="numbers" type="text" class="text" name="numbers" />
<br/>
<br/>Select Option:
<select name="sortOption" id="dropDown">
<option value="asc" class="select">Ascending</option>
<option value="desc" class="select">Descending</option>
</select>
<br/>
<br/>Sorted Numbers:
<input id="sorted" type="text" class="text" name="sorted">
<br/>
<br/>
<input type="button" value="Sort Numbers" id="submit" onclick="sort()" />
</fieldset>
</form>
答案 2 :(得分:0)
function sort() {
function asc(a,b)
{
return a - b;
}
function desc(a,b)
{
return b - a;
}
var allNumbers = document.getElementById("numbers").value.split("; ");
var nums = [];
var order = document.getElementById("dropDown").value;
for (var i = 0; i < allNumbers.length; i++) {
nums.push(parseInt(allNumbers[i], 10));
}
nums.sort((order == 'asc') ? asc : desc);
document.getElementById("sorted").value = nums.toString(',');
}
<form name="mainForm">
<fieldset name="mainSet">
Enter Numbers:
<input id="numbers" type="text" class="text" name="numbers" />
<br/>
<br/>Select Option:
<select name="sortOption" id="dropDown">
<option value="asc" class="select">Ascending</option>
<option value="desc" class="select">Descending</option>
</select>
<br/>
<br/>Sorted Numbers:
<input id="sorted" type="text" class="text" name="sorted">
<br/>
<br/>
<input type="button" value="Sort Numbers" id="submit" onclick="sort()" />
</fieldset>
</form>