1

これが私がこれまでに持っているものです...

<html>
<head>
<title>addForm</title>
<link href="css/addForm.css" rel="stylesheet" type="text/css">
<link href="favicon.ico" rel="icon" type="image/x-icon" />
<script type="text/javascript" src="../lib/jquery/jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="../lib/jquery/jquery.autocomplete.min.js"></script>
</head>

<body>
<div>
<form id="addForm" name="addForm" method="post" action="">
...
<div id="container">
<p id="add_field">
<label><a href="#">Add A Class Code</a></label>It may take a moment for your Class Code to appear in the dropdown box.
</p>
</div>
<label>Class Screens E: </label>
<select name="ClassScreenE" id="ClassScreenE" size="5"></select>
<br>
...
</form>
</div>

<script language="javascript" type="text/javascript">
$(function(){
var count = 0;

$('p#add_field').on('click', function(){
        count += 1;

$('#container').append(
'<label>ClassCode: </label>' + '<input type="text" class="autocomplete" name="ClassCode[]" id="ClassCode_' + count + '" size="34" maxlength="3">' + ' Payroll: ' + '<input type="text" name="Payroll[]" id="Payroll_' + count + '" size="10" onKeyPress="return numbersonly(this, event)">' + '<br>')
$(".autocomplete").autocomplete("scripts/findClassCode.php")
});
})

**//Edited in the following bit from Femi
//This seems to work when running 'jQuery("#ClassCode_" + i).val();' in Chrome's Inspector
//Now I need to get a solid value assigned when looping through so I can dynamically call each value to affect the a select box.
var val, i = 1, inp = jQuery("#ClassCode_" + i);
    while(inp.length > 0){
// get the value
val = inp.val();
    ++i;
inp = jQuery("#ClassCode_" + i);
}**

</script>

</body>
</html>

これはすべて完璧に機能します。リンクをクリックすると、属性を維持しながら次のフィールド セットが生成されるため、オートコンプリート ピースが機能します。次に、フォーム内の各「ClassCode_' + count + '」の結果を使用して、MySQL からデータを取得する別の選択ボックスに何が動的に表示されるかを判断する必要があります。私の問題は、動的な値を、フォームを送信しなくても使用できる変数に変換することです。私はこれを役に立たなくするためにインターネットを精査するのに一日を費やしました。誰か提案はありますか?

4

1 に答える 1

0

少し衒学的ですが、次のとおりです。

var val, i = 0, inp = jQuery("#container").find("input").find("#ClassCode_" + i);
while(inp.length > 0){
   // get the value
   val = inp.val();
   ++i;
   inp = jQuery("#container").find("input").find("#ClassCode_" + i);
}

やってみる?

于 2012-09-21T23:06:26.873 に答える