Установка бритвенных переменных в JavaScript - PullRequest
3 голосов
/ 28 июня 2011

Я пытаюсь назначить бритвенную переменную с содержимым поля со списком в моей форме из функции javascript.Вот так:

<script type ="text/javascript">
<!--
    function SomeFunction() {

        var hours = document.getElementById("Hours");
        var task = document.getElementById("TaskType_ID");
        @{            
            var tsk = @:task.value;            
         }

        @{            
        <text>
            hours.value = '@ViewBag.TaskTypes.GetHours(tsk)';
        </text>
        }

        return true;
    }

//-->
</script>

строка (и все другие варианты, которые я пробовал)

var tsk = @:task.value;

приводит к ошибке.

Ответы [ 2 ]

1 голос
/ 01 июля 2011

хорошо. вот что я в итоге делаю. Я больше не передаю объект в поле зрения. Я добавил скрипт, который привязывается к событию change моего первого поля, а затем вызвал действие в моем контроллере через ajax и поместил результат во второе поле. Вот так:

<script type="text/javascript">

    $(document).ready(function () {
        $("#q").change(function () {
            $.ajax({
                type: "GET",
                url: "Home/Test?value=" + $('#q').get(0).value,
                success: function(msg) {
                    $('#x').get(0).value = msg;
                }
            });
        });
    });

</script>

спасибо, что привели меня в правильном направлении. Со всем синтаксисом бритвы я упустил из виду тот факт, что это все еще HTML. Надеюсь, вам всем понравилось наблюдать, как я пытаюсь втиснуть квадратный колышек в круглое отверстие!

1 голос
/ 28 июня 2011

Как указал Крис, вы смешиваете код клиента и сервера.Javascript - это код клиента, и вам нужны данные с сервера, чтобы вернуть желаемое значение, используя функцию вызова ajax (get / post).Вот фрагмент кода того, что вы можете с этим сделать:

$("#tasks").change(function(){
    $.get('url',$(this).val(), function(data){
        // data is the hours returned from the selected task
        $("#hours").val(data);
    });
});

Или вместо того, чтобы делать вызовы на сервер каждый раз, когда вы выбираете задачу, вы всегда можете сохранить значения задач в переменной.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...