Первый частичный просмотр jquery selector.attrib ('id') не определен - PullRequest
0 голосов
/ 29 февраля 2012

Почему в первом предупреждении указано неопределенное?Обратите внимание, что предупреждение есть, и текстовое поле появляется только тогда, когда я отклоняю предупреждение.

enter image description here

Последующие «новые» щелчковые предупреждения «RowId».После того, как я отклонил предупреждение, я вижу две коробки.enter image description here

Вот мой взгляд со ссылкой Ajax.Action, которая называется InserterAfter.

@Ajax.ActionLink("New", "_New", new { Controller = "Test" }
    , new AjaxOptions() 
        { InsertionMode = InsertionMode.InsertAfter, UpdateTargetId = "divNew" })

<div id="divNew" />

Вот мой частичный вид.

RowId: @Html.TextBox("RowId")<br />
<script language="javascript">
    $(document).ready(function ()
    {
        alert($('input[name="RowId"]').attr('Id'));
    });
</script>

1 Ответ

2 голосов
/ 29 февраля 2012

Попробуйте следующее на главном экране:

<!-- TODO: This script should be moved to a separate javascript file
     because you should never mix markup and javascript. But for the 
     purpose of this demonstration I have left it in the view 
-->
<script type="text/javascript">
    var onSuccess = function (result) {
        $('#divNew').append(result);
    };
</script>

@Ajax.ActionLink(
    "New", 
    "_New", 
    new { controller = "Test" }, 
    new AjaxOptions() { OnSuccess = "onSuccess" }
)
<div id="divNew" />

или выбросьте Ajax.* помощников и используйте старый добрый jQuery:

<!-- TODO: This script should be moved to a separate javascript file
     because you should never mix markup and javascript. But for the 
     purpose of this demonstration I have left it in the view 
-->
<script type="text/javascript">
    $(function () {
        $('#mylink').click(function (result) {
            $.ajax(this.href, {
                success: function (result) {
                    $('#divNew').append(result);        
                }
            });
            return false;
        });
    });
</script>

@Html.ActionLink(
    "New", 
    "_New", 
    new { 
        controller = "Test" 
    },
    new { 
        id = "mylink" 
    }
)
<div id="divNew" />

При этом, если я не ошибаюсь и если у меня хорошая память, я думаю, что я уже прокомментировал аналогичный предыдущий ваш вопрос, но я повторю его здесь, чтобы другие люди тоже могли его увидеть:

не помещайте javascript в частичные или какие-либо представления вообще. Javascript относится к отдельным файлам и не должен смешиваться с разметкой.

Я вижу, как люди совершают эту ошибку снова и снова, и я думаю, что важно указать на это.

P.S .: Вы, вероятно, хотели использовать .attr('id') вместо .attr('Id').

...