2014-02-25 37 views
0

有一些javascript,需要一個時間戳和其分成小時和分鐘,24小時時間轉換爲12小時在var = True上通過JQuery添加'檢查'到無線電輸入?

// convert to 12-hour clock 
if (hours > 12) {hours = hours - 12; am = false;}; 
if (hours == 12) {hours = hours; am = false;}; 
if (hours == 0) {hours = 12;}; 

下面的代碼工作,但必須有一個更好的做法簡單地增加checked元素

var am = true; 

if (am == true) {$('#amRadio').html(am1);}; 
if (am == false) {$('#pmRadio').html(pm1);}; 

var am1 = '<input type="radio" name="ampmRadios" id="ampmRadios" value="AM" checked>AM' 
var pm1 = '<input type="radio" name="ampmRadios" id="ampmRadios" value="PM" checked>PM' 

有關更好的實踐的任何建議?

+0

這有什麼錯創建這樣的HTML嗎?你可以使用'createElement'或'$(「」)並設置屬性,但它也會這樣做。 – tymeJV

+0

使用兩個不同ID的輸入然後嘗試如果(am == true){$(「#amRadios」)。attr(checked,「checked」);} else {$(「#pmRadios」)。attr(checked,檢查「);} – shyamnathan

+0

@tymeJV感謝createElement – StackThis

回答

0

如果你正在做的是嘗試檢查/取消選中的元素,使用jQuery的道具()方法:

$('#amRadio').prop('checked',true); //false to uncheck 

[編輯]注意,基於上述ID =「amRadio」將需要成爲您的無線電INPUT的ID,而不是它當前引用的容器。另外請注意,您的兩個單選按鈕的ID應該不同,與您擁有的不一樣。只有單選按鈕的name =「」屬性應該是相同的。

0

可以做這樣的事情來簡化。

<input type="radio" name="am" /> 
<label for="am">AM</label> 
<input type="radio" name="pm" /> 
<label for="am">PM</label> 

$(document).ready(function() { 

    checkTimeInput(22); 

    function checkTimeInput(hrs){ 
     var hours = hrs, 
      inputName = 'am', 
      am = 1; 

     if ((hours > 12) || (hours === 12)) { am = 0; inputName = 'pm'; }  
     if (hours > 12) { hours -= 12; } 

     $("input[name='"+inputName+"']").prop('checked',true); 

    } 

}); 
相關問題