Javascript onchange找不到函数

Javascript onchange找不到函数,javascript,html,asp.net-mvc-4,input,onchange,Javascript,Html,Asp.net Mvc 4,Input,Onchange,我试图根据另一个输入值来改变输入值 到目前为止我想到的是这个。但是当运行onchange命令时,我得到一个错误,updateCity不存在。即使是你,它也在那里。我是否做错了什么,这对于使用javascript进行编码来说是非常新的 这不是简单的HTML/JavaScript。您使用的是React.js吗?您只在$document.ready回调的范围内定义函数updateCity,因此它在全局范围外是未定义的。但是onchange将尝试在全局范围内找到该方法。解决方案:将函数定义移到callb

我试图根据另一个输入值来改变输入值

到目前为止我想到的是这个。但是当运行onchange命令时,我得到一个错误,updateCity不存在。即使是你,它也在那里。我是否做错了什么,这对于使用javascript进行编码来说是非常新的


这不是简单的HTML/JavaScript。您使用的是React.js吗?您只在$document.ready回调的范围内定义函数updateCity,因此它在全局范围外是未定义的。但是onchange将尝试在全局范围内找到该方法。解决方案:将函数定义移到callback@Behrang-我添加了一些mvc4。这就是为什么会有{}。这是因为我正在将c列表转换为javascript数组。@MichaelTotKorsgaard您可能应该将标记更改为javascript、html、mvc4、.net、asp.net或类似的内容。。。这也应该引起.NET大师的注意:有很多不同的脚本,请尝试在标记中指定脚本的类型
<div class="form-inline">
    <div class="form-group">
        <label class="sr-only" for="zip">Indtast postnummer</label>
        <input class="form-control" type="text" name="register_zip" id="zip" placeholder="Indtast postnummer" value="@city.zip" onchange="updateCity(this.value)" />
    </div> <!-- class="form-group" -->

    <div class="form-group">
        <label class="sr-only" for="city">Indtast by</label>
        <input class="form-control" type="text" name="register_city" id="city" placeholder="Indtast by" value="@city.name" />
    </div> <!-- class="form-group" -->
</div>
<script>
    function updateCity(city_zip) {
            var city = findCity(city_zip);

            if(city != null){
                document.getElementById("register_city").value = city_name;
            }
        };

        function findCity(zip){
            var cities = [];
            @{
                foreach (var c in cities)
                {
                    <text>
                        cities.push({zip: @c.zip, name: @c.name});
                    </text>
                }
            }

            for(var i=0;i<cities.length;i++){
                if(cities[i].zip == zip){
                    return cities[i]
                }
            }
        };
</script>