2011-09-24 67 views
1

我已經1個滑塊和1個鍵:如何更改滑塊的值時使用jQuery移動時按下按鈕?

<div data-role="fieldcontain"> 
    <input type="range" name="slider" id="slider" value="0" min="0" max="100" /> 
    </div><br><br> 
    <div data-role="fieldcontain"> 
    <select name="slider" id="slider" data-role="slider"> 
     <option value="off">Off</option> 
     <option value="on">On</option> 
    </select> 
    </div> 

我怎樣才能POST(如form action="http://somesite" method="post"),當滑塊的值發生變化?按鈕被按下?

回答

1
$('#slider').change(function(){ 
    ... 
    $.post(yoururl, yourdata, function(callbackdata){ 
     ... 
    }); 
}); 

jQuery.post()jQuery.change()

編輯:BTW:有2個元素具有相同id將可能導致重大問題遲早。

編輯2:如果您試圖以這種方式從不同的域獲得響應,那麼除非它們爲您提供JSONP或類似的東西,否則您可能會運氣不佳。由於同源策略限制,您將無法通過XMLHttpRequest從第三方站點獲取內容。

儘管如此,您可以通過服務器代理請求,因此AJAX調用將轉到同一個域。

+0

謝謝!回調函數永遠不會被調用的原因是什麼? (我使用jquery ** mobile **)。 –

+0

@LA_哪個? change()或post()之一? – vzwick

+0

帖子()。該網站返回回覆狀態200和空白內容。 –

1

一個解決方案是添加一個自定義數據屬性,該屬性使輸入能夠自動提交它所屬的表單。這種屬性的

格式可以是:

<select name="slider" id="slider" data-role="slider" data-autosubmit="true"> 
    <option value="off">Off</option> 
    <option value="on">On</option> 
</select> 

jQuery代碼啓用自動提交是如下那樣容易,但我們需要使它有點滑塊更復雜,看到小提琴樣本最後爲此。

$('[data-autosubmit="true"]').change(function(){ 
    $(this).parents('form:first').submit(); 
}); 

我不知道,如果你使用本地jQuery Mobile的形式處理或者自定義,但如果你想使用的自定義掛鉤提交它可能是這個樣子:

$("form").submit(function() { 
    //Handle the submit with a jQuery.post or whatever 
}); 

下面是一些運行示例代碼小提琴:http://jsfiddle.net/4VFgS/1/

小提琴代碼得到了一些處理,以防止您提交表單每秒100次。