0

私は次のマークアップでMVC3かみそりを使用しています:

<div class="budget">
<!--line item-->
<div class="budget-row">
    <div class="row">
        <div class="twelve columns">
            <div class="row">
                <div class="two mobile-one columns">
                <label class="right inline">Item:</label>
                </div>
                <div class="ten mobile-three columns">
                @Html.TextBox("description[]", "", new { @class = "expand" })
                </div>
            </div>
            <div class="row">
                <div class="two mobile-one columns">
                <label class="right inline">Cost:</label>
                </div>
                <div class="two mobile-one columns field-left">
                @Html.TextBox("amount[]", "0", new { @class = "expand" })
                </div>
                <div class="one mobile-one columns">
                <label class="right inline">Markup:</label>
                </div>
                <div class="one mobile-one columns field-left">
                @Html.TextBox("markup_amount[]", "0", new { @class = "expand" })
                </div>
                <div class="one mobile-one columns field-left">
                <select id="markup_type[]" style="display:none;">
                <option value="P" SELECTED>%</option>
                <option value="D">$</option>
                </select>
                </div>
            </div>
        </div>
    </div><!--row-->    
</div>
<!--end line item-->

    <a class="button radius small success middle" href="#" id="submit">Submit</a>
</div>

「budget」divは全体のdivであり、「budget-row」divは1行または複数行にすることができます。各入力の値をキャッチする反復を探しています。私はこれを試しました:

$("#submit").click(function() {
    $(".budget input[type=text]").each(function() {
        alert(this.value);
    });
    return false;
});

率直に言って、非常に多くのことを試みましたが、それは現時点では近いとは言えないかもしれません。そして、それは私のテキストボックスも返すだけです。

ありがとう

編集これは出力コードを追加しています:

<div class="budget">
<!--line item-->
<div class="budget-row">
    <div class="row">
        <div class="twelve columns">
            <div class="row">
                <div class="two mobile-one columns">
                    <label class="right inline">Item:</label>
                </div>
                <div class="ten mobile-three columns">
                    <input class="expand" id="description__" name="description[]" type="text" value="" />
                </div>
            </div>
            <div class="row">
                <div class="two mobile-one columns">
                    <label class="right inline">Cost:</label>
                </div>
                <div class="two mobile-one columns field-left">
                    <input class="expand" id="amount__" name="amount[]" type="text" value="0" />
                </div>
                <div class="one mobile-one columns">
                    <label class="right inline">Markup:</label>
                </div>
                <div class="one mobile-one columns field-left">
                    <input class="expand" id="markup_amount__" name="markup_amount[]" type="text" value="0" />
                </div>
                <div class="one mobile-one columns field-left">
                    <select id="markup_type[]" style="display:none;">
                        <option value="P" SELECTED>%</option>
                        <option value="D">$</option>
                    </select>
                </div>
            </div>
        </div>
    </div><!--row-->    
</div>
<!--end line item-->

<a class="button radius small success middle" href="#" id="submit">Submit</a>
</div>
4

1 に答える 1

0

これは私があなたの選択した価値を得るために思いついたものです。これがあなたが必要としていたすべてだったのか、それとももっとあったのかわからない。

<div class="row">
    <div class="two mobile-one columns">
        <label class="right inline">Cost:</label>
    </div>
    <div class="two mobile-one columns field-left">
        <input type="text" value="1" class="first" />
    </div>
    <div class="one mobile-one columns">
        <label class="right inline">Markup:</label>
    </div>
    <div class="one mobile-one columns field-left">
        <input type="text" value="2" class="second" />
    </div>
    <div class="one mobile-one columns field-left">
        <select id="markup_type[]" class="first">
            <option value="A" SELECTED>%</option>
            <option value="B">$</option>
        </select>
    </div>
    <div class="one mobile-one columns field-left">
        <select id="test_type[]" class="second">
            <option value="Z" SELECTED>%</option>
            <option value="Y">$</option>
        </select>
    </div>
</div>

$(document).ready(function () {
    $("#submit").click(function () {
        $("select :selected").each(function(){
            alert($(this).val());
            //get the corresponding input for this select
            var cName = $(this).parent().attr("class");
            var div = $(this).closest(".row");
            var input = $("." + cName, div);
            alert($(input).val());
        });
        return false;
    });
});

ここでフィドルをチェックできます。

クラスを使用してselectを入力に結び付けていることに注意してください。この例では、入力にclass = "first"のマークを付け、selectにclass="first"のマークを付けてそれらを結び付けています。

これがうまくいくかどうか教えてください。

于 2013-03-12T23:40:06.317 に答える