【发布时间】:2011-08-21 08:32:56
【问题描述】:
我在 Asp.Net MVC 3 应用程序中将 jQTouch 用于 Web 应用程序。该应用程序有一个 id 为 ajax_form 的订单表单,当单击“orderlink”类的链接时,该表单会填充该链接中的 id 和文本。
当我在桌面浏览器中测试应用程序时,所有这些都可以正常工作。但是,当我在 iphone 上实时尝试时,表单可以正常工作,但是单击链接时不会在表单中插入值。那么为什么它在桌面浏览器上可以运行,而在 iphone 上却不行呢?
这里是 jQuery(包括所有,以防有冲突或需要发现的东西,但我指的是 .submit 点击功能和 orderlink 实时点击功能):
<script type="text/javascript">
$(document).ready(function () {
updateDetails();
$(".submit").click(function () {
var form = $("#ajax_form");
var action = "@Url.Action("Order")";
var serializedForm = form.serialize();
$.post(action, serializedForm, function(data) {
$('#orderresult').html(data);
});
return false;
});
$('.orderlink').live('click', function() {
var prodno = this.id; //Why should this not have $(this)? Doesn't work then.
var name = $(this).text();
$("#productnumber").val(prodno);
$("#productname").val(name);
});
$(".back").click(function () {
$('#orderresult').html("");
});
$('#names').change(function() {
updateDetails();
});
$('#features').change(function() {
updateDetails();
});
});
function updateDetails() {
var nameid = $('#names').val();
var featureid = $('#features').val();
var url = "@Url.Action("DatabaseDetails")";
$.get(url, {nameid: nameid, featureid : featureid}, function(data) {
$('#databasedetails').html(data);
});
}
</script>
编辑:
奇怪的是,如果我删除回调 $('#orderresult').html(data);它有时会起作用。但我看不出它为什么只在某些时候起作用的模式。我只需要多次点击链接,几次后表单会更新为当前点击链接的新值......非常不稳定的行为。以下是示例订单链接:
<a class="orderlink" id="2" href="#ajax_form">Configurator Software</a>
<a class="orderlink" id="1" href="#ajax_form">ACME Hard Drive 2000</a>
【问题讨论】: