Сортировка списка элементов с использованием JavaScript - PullRequest
1 голос
/ 09 июня 2010

Я работаю над назначением класса, в котором мне нужно выполнить следующее:

1 Пользователь вводит список элементов в текстовое поле (поле формы) 2 Когда пользователь нажимает кнопку сортировки,список в текстовом поле сортируется 3 Он берет текст из текстового поля и помещает отсортированный текст обратно в текстовое поле

Пожалуйста, помогите!

edit: это то, что я до сих пор, это не работает, хотя.спасибо, ребята.

<script type="text/javascript">
    function addName()
    {
    var name2add = document.nameForm.newName.value;
    // is the name 1-15 characters in length?
    if (name2add.length > 15 || name2add.length == 0)
    {
        // no, warn the user
        alert("Name must be between 1 and 15 characters long.");
        // put the focus and selection back in the name text box
        document.nameForm.newName.focus();
        document.nameForm.newName.select();
    } else {
        theSelect = document.nameForm.nameList;
        newVal = theSelect.options.length;
        //alert(name2add + " will be #" + newVal);
        // crate the new Option object to insert into the list
        var newOption = new Option(name2add,newVal);
        // insert the new option into the list
        theSelect.options[newVal] = newOption;
        // clear out the name text field and return the focus there
        document.nameForm.newName.value = "";
        document.nameForm.newName.focus();
    }
    return;
    }
    function deleteName()
    {
        var theSelect = document.nameForm.nameList;
        theSelect.options[theSelect.selectedIndex] = null;
        return;
    }
    </script>

    </head>

    <body>
    <form id="form4" name="nameForm" method="post" action="">
      <p>
        <label>
          <input type="text" name="newName" id="newName" />
        </label>
      </p>
      <p>
          <input type="button" value="Add Name To List" name="addButton" id="addButton" onclick="addName()" />

      </p>
      <p>
        <label>
          <select name="list" size="3" id="nameList" >
          </select>
        </label>
      </p>
    <p>
    <INPUT TYPE="BUTTON" NAME="sort" VALUE="  Sort  " 
    OnClick="sortOptions(document.nameForm.list)">
    </p>
    <p>
    <input type="button" value="Remove Name From List" name="deleteButton" id="deleteButton" onclick="deleteName()" />
    </p>
    </form>

1 Ответ

0 голосов
/ 09 июня 2010

К счастью для вас, Javascript предоставляет собственный алгоритм сортировки, поэтому вам не нужно писать его самостоятельно.Это array.sort ().

Так что, в основном, получите текст из текстового поля, поместите текст в массив.Затем запустите .sort () для массива;затем поместите его обратно в текстовое поле.

Что касается получения текста в массив, вы можете использовать string.split ("\ n"), если он разделен строками, или string.split (","), если он разделен запятыми.

var itemsToSort = document.getElementById("text_box")
var arrayToSort = itemsToSort.split("\n")
arrayToSort.sort()
document.getElementById("text_box").value = arrayToSort.join("\n")

для вашего текстового поля с идентификатором" text_box ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...