我在Asp.Net MVC 3应用程序中使用jQTouch作为Web应用程序。该应用程序有一个id为ajax_form的订单表单,当点击带有“orderlink”类的链接时,该表单将填充此链接中的id和text。
当我在桌面浏览器中测试应用程序时,所有这一切都正常。但是,当我在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>
答案 0 :(得分:0)
找到一个解决方案:如果我更改了它,以便订单链接触发jQT.goTo()就可以了。