2017-11-01 19 views
0

ウェブサイトの目的は書籍のタイトルを保存して注文することです。ユーザーが配列に入力した書籍を削除できるようにする必要があります。私はJavascriptでかなり新しいですが、JavaとC#の経験が少しあります。JavaScript/HTML HTML入力/テキストボックスを使用してjavascript配列の要素を動的に削除する方法

少しこれに貼り付けられました。スプライスと削除を使用してコード内の配列から要素を削除する方法についていくつかの読書をしていました。しかし、私はそれのための関数を作成すると、配列内のすべてのテキストボックスの入力文字列だけを削除します。

私の評価のために、第三者図書館を使用せずに行う必要があります。

これはおそらく、データを保存するための最良の方法ではないことがわかっています。これは、ページを更新したり閉じる際に消去されるためです。

HTML:

<!DOCTYPE html> 
<html> 
    <body> 
    <h1> Prototype Book Storage and Display </h1> 
    <form id = "formWrapper"> 
    Search<br> 
    <input id="myTextBox" type="text" name="search"> 
    <br> 
    <input onClick="submitData()" type="button" value="Submit Book"> 
    <input onClick="printBooks()" type="button" value="Find Book"> 
    <input onClick="deleteData()" type="button" value = "Delete Book"> 
    <p id = "booktitle"></p> 
    </form> 
    </body> 
</html> 

Javascriptを:

var myFormData = []; //declare an array 
    var value1; 

    //Prints My Books to a list 
    function printBooks() { 
     clearBook(); 
     alert(myFormData); 
     document.getElementById('booktitle').innerHTML = myFormData; 

    } 
    //Submits input to array 
    function submitData() 
    { 

    value1 = document.getElementById("myTextBox").value; 
    myFormData.push(value1); 
    alert(myFormData); 
    clearField(); 
    } 

    //Deletes data from the array 
    function deleteData() 
    { 
    deleteValue = document.getElementById("myTextBox").value; 
    myFormData.splice(deleteValue); 
    alert(deleteValue + " " + "Deleting your book"); 
    } 

    //clears textbox field 
    function clearField() 
    { 
    var txt2 = document.getElementById("myTextBox"); 
    txt2.value = ""; 
    } 
    //Refreshes book object model 
    function clearBook() 
    { 
    var txt3 = document.getElementById("booktitle"); 
    txt3.value=""; 
    } 

答えて

1

問題は、文字列値を渡している、開始インデックスを期待

myFormData.splice(deleteValue); 

splice()です。使用方法については、How do I remove a particular element from an array in JavaScript?を参照してください。それは

// get the index of the value in the array or -1 if it does not exist 
var index = myFormData.indexOf(deleteValue); 
// only try removing it, if it exists in the array 
if (index !== -1) { 
    myFormData.splice(index, 1); 
} 
+0

だろう、あなたの場合は

が、これは本当に便利だった、masterflodaありがとうございます。私の問題を解決!それはいつも私を旅行させるような単純なものです。これは重複した投稿であったことに気付かなかった、私は本当に私が何を探しているのか分からなかったと思う。 –

関連する問題