はい、このフォームを作成してから約 3 日が経ちました。すべてが機能していましたが、入力が入力されているかどうかを確認するために検証が必要になったときに、すべてが制御不能になりました。
フォームには、mySQL 値が取り込まれるドロップダウン ボックスが必要です。その横にも入力用のテキストボックスがあります。入力がテキストボックスにあるかどうかを確認するには、テキストボックスを JavaScript で検証する必要があります。次に、行を削除するためのボタン。
追加ボタンはこれらすべての上にある必要があり、同じ入力の別の行を追加するだけです。
これを innerHTML ステートメントで処理し、カウンターを使用してすべてを PHP 配列に渡しましたが、削除ボタンと検証で複雑になりすぎました。
私は Web アプリケーションの他の部分で jQuery を使用しているので、それはオプションです。
方向性やサンプルコードは非常に役立ちます。
ありがとうございました
このコードで動作させることができました
<script type="text/javascript">
$(document).ready(function() {
if(typeof intId==='undefined')
{
$(".add").attr("disabled", "true");
}
$("#addButton").click(function() {
var intId = $("#prodpart div").length + 1;
var fieldWrapper = $("<div class=\"fieldwrapper\" id=\"partfield" + intId + "\"/>");
var partlabel = $("<label>Part #" + intId + ":</label> ");
var part = $("<select name=\"part[" + intId + "]\"><?php echo $option2; ?></select>");
var partqtylabel = $("<label>Part QTY #" + intId + ": </label> ");
var partqty = $("<input type=\"text\" class=\"required\" onblur=\"enable()\" value=\"\" size=\"5\" id=\"partqty" + intId + "\" name=\"partqty[" + intId + "]\" class=\"fieldname\" />");
var parttimelabel = $("<label> Run Time #" + intId + ":</label> ");
var parttime = $("<input type=\"text\" size=\"5\" value=\"NOT REQUIRED\" name=\"runparttime[" + intId + "]\" />");
var removeButton = $("<input type=\"button\" class=\"remove\" value=\"Del\" />");
removeButton.click(function() {
$(this).parent().remove();
});
fieldWrapper.append(partlabel);
fieldWrapper.append(part);
fieldWrapper.append(partqtylabel);
fieldWrapper.append(partqty);
fieldWrapper.append(parttimelabel);
fieldWrapper.append(parttime);
fieldWrapper.append(removeButton);
$("#prodpart").append(fieldWrapper);
});
});
function disable(){
$(".add").attr("disabled", "true");
$(".required").blur(function(){
if ($(this).val() != initVal && $(this).val() != "") {
$(".add").removeAttr("disabled");
} else {
$(".add").attr("disabled", "true");
}
});
};
function enable(){
$(".add").removeAttr("disabled");
};
これは、行の書き込み、削除、および検証用の上記の JavaScript です。
<input type="button" value="Add Prod Part" class="add" onclick="disable()" id="addButton" />
私のボタンの一つ。必要なボックスにテキストを入力する前は、ボタンは無効になっています。テキストが入力されると、ボタンが有効になり、別の行を追加できます。これはまだ少しバグがありますが、必要なものには問題なく機能します。