1

私のコードは機能していて、テキストをテキストボックスから次のページに移動し、入力コントロールをjs経由で次のページに移動しましたが、突然、次のコードに何が問題なのかという大失敗があるようです

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript">
var i=2;
function AddTextbox(){
container.innerHTML=container.innerHTML+'<input type="text" name="'+ i + '">';
i++;
}
</script>

</head>
<body>
<form action="next.php" method="post">
<input type="text" name="1" />
<input type="button" onClick="AddTextbox" name="btn" value="add" />
<input type="submit" name="submit" value="sub" />
<div id="container"></div>
</form>
</body>
</html> 
4

2 に答える 2

0
<html>
  <head>
    <script>
      function addElement(tag_type, target, parameters) {
        //Create element
        var newElement = document.createElement(tag_type);

        //Add parameters
        if (typeof parameters != 'undefined') {
          for (parameter_name in parameters) {
            newElement.setAttribute(parameter_name, parameters[parameter_name]);
          }
        }

        //Append element to target
        document.getElementById(target).appendChild(newElement);
      }
    </script>
  </head>
  <body>
    <div id="targetTag"></div>
    <input type="button" onClick="addElement('INPUT','targetTag',{id:'my_input_tag', name:'my_input_tag', type:'text', size:'5'}); return false;" value="Add Input Tag" />
    <input type="button" onClick="addElement('INPUT','targetTag'); return false;" value="Add Input Tag W/O Parameters" />
  </body>
</html>

IE でこれを実行した後で DOM を確認しようとすると、name フィールドが使用できないことがわかります。IE は、このフィールドが読み取り専用であると宣言しているため、表示されません。ただし、次のテスト コードに示すように、フィールドは適切に送信されます。

<?php
if (isset($_POST)) {
  print '<pre>'.print_r($_POST,true).'</pre>';
}
?>
<html>
  <head>
    <script>
      function addElement(tag_type, target, parameters) {
        //Create element
        var newElement = document.createElement(tag_type);

        //Add parameters
        if (typeof parameters != 'undefined') {
          for (parameter_name in parameters) {
            newElement.setAttribute(parameter_name, parameters[parameter_name]);
          }
        }

        //Append element to target
        document.getElementById(target).appendChild(newElement);
      }
    </script>
  </head>
  <body>
    <form method="post">
    <div id="targetTag"></div>
    <input type="submit" value="Check"/>
    </form>
    <input type="button" onClick="addElement('INPUT','targetTag',{'id':'my_input_tag', 'name':'my_input_tag', 'type':'text', 'size':'5'}); return false;" value="Add Input Tag" />
    <input type="button" onClick="addElement('INPUT','targetTag'); return false;" value="Add Input Tag W/O Parameters" />
  </body>
</html>
于 2012-05-05T08:26:25.507 に答える
0
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.js"></script>
<script type="text/javascript">
var i=2;
$(document).ready(function() {
  $('#button').click(function(){
      $('#container').append('<input type="text" name="'+ i + '"><br/>')
      i++;
  });
});
</script>

</head>
<body>
<form action="next.php" method="post">
<input type="text" name="1" />
<input type="button" id="button" name="btn" value="add" />
<input type="submit" name="submit" value="sub" />
<div id="container"></div>
</form>
</body>
</html> 

クリック機能を使用します。これは必要ですか?

于 2012-05-03T05:33:02.333 に答える