1

phonegapを使用してAndroidアプリを開発しています。ページの 1 つで HTML フォームを使用しようとしていますが、HTML DOM を使用するように言われました。スクリプトを作成しましたが、予期しないトークンというエラーが表示されました。

HTML のサンプル コードは次のとおりです。

<form name="editNoteForm" id="formaltera" method="post" action="index.html">
  <div data-role="fieldcontain">
    <label for="primeiroNome">Primeiro Nome</label>
    <input type="text" name="primeiroNome" id="primeiroNome">
  </div>

  <div data-role="fieldcontain">
    <label for="ultimoNome">Ultimo Nome</label>
    <input type="text" name="ultimoNome" id="ultimoNome">
  </div>

  <div data-role="fieldcontain">
    <label for="numeroTelefone">Telefone</label>
    <input type="number" name="numeroTelefone" id="numeroTelefone">
  </div>

  <div data-role="fieldcontain">
    <input type="submit" id="submit" value="Guardar">
  </div>
</form>

上記の HTML コードのようなものを取得できるように、作成したスクリプトを次に示します。

<form name="formaltera" id="formaltera" method="post" action="index.html"></form>
    <script charset="utf-8" language="javascript">
    var temp1 = localStorage.getItem("selected");
    var temp = localStorage.getItem(temp1);

    temp = temp.split(";");
    var firstName = temp[0];
    var lastName = temp[1];
    var phoneNumber = temp[2];
    var form = document.getElementById('formaltera');
    var formBody = form.childNodes[0];
    var div = document.createElement('div');
    var inputTextA = document.createElement('input');
    var inputTextB = document.createElement('input');
    var inputTextC = document.createElement('input');
    var inputSubmit = document.createElement('input');
    var labelA = document.createElement('label');
    var labelB = document.createElement('label');
    var labelC = document.createElement('label');
    var labelTextA = document.createTextNode('Primeiro Nome');
    var labelTextB = document.createTextNode('Ultimo Nome');
    var labelTextC = document.createTextNode('Telefone');

    div.data-role = "fieldcontain";

    labelA.for = "primeiroNome"; //I'm getting an error in here
    labelB.for = "ultimoNome";
    labelC.for = "numeroTelefone";

    inputTextA.type = "text";
    inputTextA.name = "primeiroNome";
    inputTextA.id = "primeiroNome";
    inputTextA.value = firstName;

    inputTextB.type = "text";
    inputTextB.name = "ultimoNome";
    inputTextB.id = "ultimoNome";
    inputTextB.value = lastName;

    inputTextC.type = "number";
    inputTextC.name = "numeroTelefone";
    inputTextC.id = "numeroTelefone";
    inputTextC.value = phoneNumber;

    inputSubmit.type = "submit";
    inputSubmit.name = "submit";
    inputSubmit.id = "submit";
    inputSubmit.value = "Guardar";

    form.appendChild(div);
    div.appendChild(labelA);
    labelA.appendChild(labelTextA);
    div.appendChild(inputTextA);

    form.appendChild(div);
    div.appendChild(labelB);
    labelA.appendChild(labelTextB);
    div.appendChild(inputTextB);

    form.appendChild(div);
    div.appendChild(labelC);
    labelA.appendChild(labelTextC);
    div.appendChild(inputTextC);

    form.appendChild(div);
    div.appendChild(inputSubmit));


    </script>

HTML コードは、私が作成したスクリプトとは少し異なる可能性があります。説明のために書いたからです。前もって感謝します。私が自分自身をよく説明していることを願っています。

4

1 に答える 1

2

属性はプロパティforを介して割り当てる必要がありますhtmlFor

labelA.htmlFor = ...

詳細については、 https://developer.mozilla.org/en-US/docs/DOM/HTMLLabelElementを参照してください。

于 2012-09-20T09:27:11.830 に答える