如何获得HTML文本的价值?

时间:2018-07-13 06:16:47

标签: jquery html asp.net-mvc razor

这是我的HTML代码的一部分:

@foreach (var product in Model)
{
    <label>Amount</label>
    <div class="col-md-10">
        <input type="text" name="amounter" id="amounter" required />
    </div>
}

这是我的剧本:

<script type="text/javascript">

    $(".btn.btn-info.btn-lg-add").click(function(event)
    {
        event.preventDefault();
        var url;

        if ($("#amounter").val() == undefined || $("#amounter").val() == null) {
            url = '@Html.Raw(Url.Action("NoAmount", "Cart"))';
        }

        else {
            var url = '@Html.Raw(Url.Action("AddToCart", "Cart", new {idinput = "IDI",amount="AM"}))';
            url = url.replace("AM", $("#amounter").val());
            url = url.replace("IDI", $(this).data("id"));
        }

          window.location.href = url;
    });

</script>

请注意,每个文本后都有一个唯一的按钮。 显然,由于重复,我在id="amounter"上遇到了问题。因此,这不是正确的代码。

因此,由于我有多个文本(由于foreach),我如何引用特殊文本?

4 个答案:

答案 0 :(得分:1)

正如您所说,每个文本后面都有一个唯一的按钮。那么如果输入文本元素位于左侧,则可以这样找到它:

$(".btn.btn-info.btn-lg-add").on('click', function(){
   text =  $(this).prev('input').val();
});

如果输入是在此之后,则可以这样找到它:

$('.btn.btn-info.btn-lg-add').on('click', function(){
   text =  $(this).next('input').val();
});

答案 1 :(得分:0)

您可以添加一个数字,以便ID是唯一的

@{int i = 0;}
@foreach (var product in Model)
{
                        <label>Amount</label>
                        <div class="col-md-10">
                            <input type="text" name="amounter" id="amounter_@(i)" required />
                        </div>
                    </div>
                    i++;
}

答案 2 :(得分:0)

您可以使用$('input[name="amounter"]')进行引用

,您可以通过console.log()检查该值;

,当您想要获取数据时,可以使用

$.map($('input[name="amounter"]'),function(c){return c.value;});

答案 3 :(得分:0)

嗨,伙计可能会帮助您

$.each($("[name=amounter]"), function (index, data) {
                                     
 console.log($("[name=amounter]:eq("+index+")").val());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Amount1</label>
<div class="col-md-10">
<input type="text" name="amounter" id="amounter_@1" required value="data1" />
</div>

<label>Amount2</label>
<div class="col-md-10">
<input type="text" name="amounter" id="amounter_@2" required value="data2" />
</div>


<label>Amount3</label>
<div class="col-md-10">
<input type="text" name="amounter" id="amounter_@3" required  value="data3"/>
</div>