【问题标题】:ASP.NET MVC : Change input text value with jQueryASP.NET MVC:使用 jQuery 更改输入文本值
【发布时间】:2016-03-25 17:06:47
【问题描述】:

我有一个 Bootstrap 模式,当您单击它时,它会显示画廊的图像。我想通过单击每个图像来更改输入值,并将它们的 Url 放在 input text 上用于 submit 。但它不起作用,输入文本的值不会改变。为什么?

    @model IEnumerable<tourism.Models.Gallery>

    <input type="text" name="imgUrl" id="index-img" style="width: 100%;" value="url" />

 <div class="container">
    <!-- Trigger the modal with a button -->
    <button type="button" class="btn btn-info btn-lg" id="myBtn">Choose Image</button>

    <!-- Modal -->
    <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog modal-lg">

            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Gallery</h4>
                </div>
                <div class="modal-body">

                    <div class="row">

                        @foreach (var item in Model)
                        {
                            <div class="col-lg-2 col-sm-3 col-xs-4">
                                <a href="#" onclick="(function () {    ('input[name=imgUrl]').val()=@Html.DisplayFor(modelItem => item.Url); })()" class="close" data-dismiss="modal"><img src="@Html.DisplayFor(modelItem => item.Url)" class="thumbnail img-responsive" alt="@Html.DisplayFor(modelItem => item.Alt)"></a>
                            </div>
                        }

                    </div>

                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>

        </div>
    </div>

</div>

用于将 Url 从模型传递到输入文本的 jQuery 代码(来自上面的代码):

<a href="#" onclick="(function () {    ('input[name=imgUrl]').val()=@Html.DisplayFor(modelItem => item.Url); })()" class="close" data-dismiss="modal"><img src="@Html.DisplayFor(modelItem => item.Url)" class="thumbnail img-responsive" alt="@Html.DisplayFor(modelItem => item.Alt)"></a>

【问题讨论】:

    标签: javascript jquery asp.net-mvc asp.net-mvc-3 twitter-bootstrap-3


    【解决方案1】:

    更改链接以为项目 url 添加 data- 值(删除您的 onclick=...

    <a href="#" data-url="@item.Url" class="image" .... >
    

    然后添加脚本来处理链接的点击事件来更新输入

    $('.image').click(function() {
      $('#index-img').val($(this).data('url'));
    });
    

    【讨论】:

    • 干得好。谢谢你,先生 。你有学习 jquery 的好资源吗?
    • 对不起,'data-url'在这里的作用是什么?
    • 我首先要了解Unobtrusive_JavaScript。最好的网站 IMO 是 official documentation
    • Html data- 属性是向 html 元素添加任意数据的一种方式(请参阅 jquery 文档 here)。在这种情况下,它将对象Url 属性的值存储到名为urldata 属性中,然后您可以使用.data('url') 检索该属性。你可以存储几乎任何你想要的东西
    猜你喜欢
    • 2011-08-08
    • 1970-01-01
    • 2014-05-07
    • 2012-05-13
    • 1970-01-01
    • 2011-06-26
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多