0

我在我的 MVC 应用程序中创建了一个小型移动界面,基本上需要将从选择列表中选择的数字提交到服务器。

代码:

@{
    ViewBag.Title = "Freezer Status";
}
<div style="width: 210px">
    <div>
        <select style="width: 160px">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
        </select>
    </div>
    <div>
        <input type="submit" id="submit" value="Save" style="width: 200px" />
    </div>
</div>
<div id="result">
</div>
<script type="text/javascript">
    $("select").change(function () {
        $("select option:selected").each(function () {
            $.ajax({
                data: {
                    fridgeNo: $(this).val()
                },
                type: 'GET',
                url: '@Url.Action("GetLastSubmitAction", "BlastFreezer")',
                cache: false,
                success: function (html) {
                    $("#submit").attr('value', html.Value);
                    $("#submit").prev().html(html.Text);
                }
            });
        });
    }).change();

    $("#submit").click(function () {
        $.ajax({
            data: {
                fridgeNo: $(this).val()
            },
            type: 'GET',
            url: '@Url.Action("ClockFridgeTime", "BlastFreezer")',
            cache: false,
            success: function (html) {
                $("#submit").attr('value', html.Value);
                $("#submit").html(html.Text);

                $("#result").html("Saved!");
            }
        });
    });
</script>

当我开发它时,我使用 chrome 的代理切换插件测试了界面,它似乎工作正常。

代理字符串:

Mozilla/4.0(兼容;MSIE 7.0;Windows Phone OS 7.0;Trident/3.1;IEMobile/7.0;诺基亚;N70)

但它不适用于需要使用该接口的设备。我只能告诉你(一直试图在设备上窥探特定的 IE 版本无济于事)是它的 windows mobile 和某种形式的袖珍 IE 移动设备。

Chrome - 使用移动代理 移动设备

保存按钮文本应根据服务器发回的文本确定。然后我需要能够进行简单的提交/ajax 调用。我最好的猜测是,Mobile IE 和它的老大哥一样喜怒无常,而 JQuery mobile 在它上面不起作用。如果是这种情况,我还能如何在不发布的情况下对服务器进行任何调用?

4

1 回答 1

0

这只是现在的部分答案。(一旦我弄清楚了,我会更新并将其标记为已解决:P)

我最终把 JQuery mobile 拿出来了。我的观点现在看起来像这样。on Change 事件仍然没有在 IE Mobile 上触发(但是当我在不同代理下的 chrome 中运行它时它可以工作),表单提交了冰箱,至少......

@{
    ViewBag.Title = "Freezer Status";
}
@using (Html.BeginForm("ClockFridgeTime", "BlastFreezer", FormMethod.Get, new { name = "UpdateForm" }))
{
    <div style="width: 210px">
        <div>
            @Html.DropDownList("fridgeNo", (List<SelectListItem>)ViewBag.Options, new { onChange = "PostForm(this, '/Index')", Style = "width:160px; height 80px;" })
        </div>
        <br />
        <div>
            <input type="submit" id="submit" value="@ViewBag.FridgeStatus" style="width: 200px; height:80px" />
        </div>
    </div>
}
<script type="text/javascript">
    function PostForm(btnClicked, newLocation) {
        var $form = $(btnClicked).parents('UpdateForm');

        $.ajax({
            type: "GET",
            url: document.UpdateForm.action.replace('/ClockFridgeTime', newLocation.toString()) + "?fridgeNo=" + document.getElementById('fridgeNo').value,
            success: function (response) {
                document.body.innerHTML = response;
            }
        });
        return false;
    }
</script>
于 2012-06-28T13:28:29.553 回答