1

我有一个view正在显示的名为 Forms,它有一个dropdownlist. 当dropdownlist有不同的选择时,我有一个这样调用的 jquery:

    $(document).ready(function () {
        $("#myDropDownList").change(function () {
            $.ajax({
                url: '/Home/Forms/' + $("#myDropDownList option:selected").val(),
                type: 'GET',
                success: function (data) {
                // refresh div
                }
            });
        });
    });

这是我的表单视图:

    @model myProject.ViewModels.PageView

    @section JavaScript
    {
       <script type="text/javascript" src="@Url.Content("/Scripts/jquery.myJQuery.js")"></script>
    }

    @Html.DropDownList("myDropDownList", Model.selectList)

    <div id="somediv">
       @Html.Label(Model.ValueThatShouldChange)
    </div>

因此,当Forms再次调用该操作时,ValueThatShouldChange我的 ViewModel 中会发生更改,它们将显示在div. 这就是为什么我想刷新那个 div 但我不知道该怎么做。

我试过$('#yourdivID').html(data)了,但它在 div 中加载了我的整个视图。

4

5 回答 5

3

最简单的方法是使用该功能通过使用其idload()选择它来仅加载您需要的页面的特定部分。例如:

$("#yourDivId").load("/Home/Forms/ #" + $('#myDropDownList option:selected').val())

根据您的网页构建方式(您不提供该信息),您还可以通过包含一个参数来更改您的 Ajax 调用以加载您需要的内容。例如:

$(document).ready(function () {
    $("#myDropDownList").change(function () {
        $.ajax({
            url: '/Home/Forms/' + $("#myDropDownList option:selected").val(),
            data: { id : $('#myDropDownList option:selected').val() }
            type: 'GET',
            success: function (data) {
               $('div#yourDivId').html(data);
            }
        });
    });
});

在您的页面中,您只需根据id输出所需的内容(如果是 PHP):

<? if (isset($_POST['id'])) {
      if ($_POST['id'] == "somediv") { ?>
         <div id="somediv">Just this content should be loaded</div>
   <? }
   }
   else { ?>
     <!-- your regular html... -->
?  }   ?>
于 2013-01-10T15:00:34.660 回答
2

您可以使用

$('#yourdivID').html(data)

或者

$('#yourdivID').text(data)

取决于你从你的电话中得到什么

于 2013-01-10T14:59:31.213 回答
1
$(document).ready(function () {
        $("#myDropDownList").change(function () {
            $.ajax({
                url: '/Home/Forms/' + $("#myDropDownList option:selected").val(),
                type: 'GET',
                success: function (data) {
                  $("div").html(data);
                }
            });
        });
    });
于 2013-01-10T15:00:25.860 回答
0

嘿。这是最小、最快的答案!:-)

你想要做的是使用jQuery快捷方式 $.load() http://api.jquery.com/load/

$(function() {  // <-- shortcut for $(document).ready
    $("#myDropDownList").on('change', function () { 
        $('#target-div').load('/Home/Forms/' + $("#myDropDownList option:selected").val());
    });
});

#target-div 只是目标 div 的 CSS 选择器。改变以适应。

于 2013-01-10T14:59:43.257 回答
0

如果您只想重绘 div 的内容,您可以使用

$('#yourdivID').change();
于 2013-01-10T15:00:48.217 回答