2011-08-30 91 views
1

我有一個輸入表單。 當我提交我的表單並返回時,此輸入將返回到默認值。如何在Jquery mobile中的表單提交後選擇一個選擇輸入?

通常我這樣做:

$(document).ready(function(){ 
    $('#selectCountry').val('<?php echo $country ?>'); 
}); 

但在jQuery Mobile的,由於阿賈克斯包裝,$(文件)。就緒不火的形式提交後。

有沒有辦法解決這個簡單但煩人的問題?

+0

你通過Ajax提交表單? –

+0

我正在提交我的表單「通常」

Korangar

回答

0

更新

這將是更好,如果你可以加載在頁面加載的值。再次

<select id="selectCountry"> 
<?php 
foreach ($countries as $country){ 
    echo '<option value="' . $country . '"'; 
    if($country == $selectedCountry){ 
     echo ' selected="selected"'; 
    } 
    echo '>' . $country . '</option>'; 
} 
?> 
</select> 

更新這是你如何對jQuery Mobile的做到這一點。

$('#selectCountry').live('pagecreate',function(){ 
     $(#'selectCountry').val('<?php echo $country; ?>'); 
    }); 

See this page.

上建議 - 您可以使用.live()函數? ('#selectCountry')。live(function(){ $(#'selectCountry')。val(''); });

+0

我試過這個,但它根本沒有發射。 – Korangar

+0

我讀過的文檔顯示這應該起作用。如果您可以在頁面加載時加載該值,那麼反正會更好。 – AndrewR

+0

我想我最終會使用php的生活方式。 – Korangar

0

更改此:

$(document).ready(function(){ 
    $('#selectCountry').val('<?php echo $country ?>'); 
}); 

這樣:

$(document).ready(function(){ 
    init() 
}); 

function init() { 
    $('#selectCountry').val('<?php echo $country ?>'); 
} 

然後在你的頁面的底部,你可以隨時調用的init()直接:

<script type='text/javascipt'> 
init() 
</script> 
+0

當我提交表單時,它不會調用該函數。我不知道jquery mobile如何管理這個。 也許這是因爲我使用相同的頁面表單和表單操作我不知道 – Korangar

+0

它必須使用AJAX而不知道它。您需要找到AJAX調用並將init()調用添加到回調函數中。 –

+0

用jquery mobile做這個簡單的任務不是很難嗎? – Korangar