0

因为我现在花了大约一周的时间来解决一个问题,所以我决定在这个社区中询问是否有人可以帮助我,或者至少在跌倒的故事成真之前给我一个线索:-)

我正在用 Python 编写一个动态页面,该页面生成 HTML 输出,其中表单将其值提交给生成的 Python 脚本本身——效果很好——在客户端使用 JQuery Mobile。我确实使用多页布局,其中 5 页包含一个带有滑块的表单。

我希望所有滑块触发一个 cgi 脚本(这是 Python 脚本本身)。我首先在每种形式中使用以下代码执行此操作:

<form action="**scriptname**" method="get" name="raum1" id="f_raum1">

<input type="range" name="slider_r1l" id="slider-1" value="**bfout1**" min="-70" max="12" data-theme="b" data-highlight="true" data-track-theme="a" onchange="document.getElementById('f_raum1').submit()"/>

xxx值会在输出到浏览器之前被 python 替换)

问题是,在我完成滑块值更改之前触发了 onchange(意味着我仍在滑块上更改值),因为即使是很小的更改也会触发 cgi 请求。我想用 vmouseup 做到这一点,以便当我从设备上释放手指或鼠标时触发器变为真。

我在我的 html 标头中尝试了这个,但我没有让它工作(肯定是我缺乏 Javascript 知识的原因)并删除了输入标签中的 onchange:

<script type="text/javascript">
var in = getElementsByTagName("INPUT");
$(in).bind('vmouseup', function () {
self.document.submit();
 });
</script>

我的问题在哪里?这应该将所有输入标签绑定到 vmouseup 函数?

4

1 回答 1

1

鼠标与图形组件交互,而不是与输入框交互。您可以绑定到 -ui-slider:

$('#slider-1').siblings('.ui-slider').bind('vmouseup', function () {
  /* Do submit */
});

您在此处获得了有关如何绑定滑块事件的更详细说明: jQueryMobile:如何使用滑块事件?

于 2012-06-01T20:08:19.497 回答