2012-12-29 44 views
-1

當隱藏輸入字段更改值時,我需要播放音頻文件。 這個隱藏的輸入位於<table>,它由Ajax刷新以更新值。當隱藏輸入更改值時播放音頻

我需要做的是,(例如)當值轉爲是時,需要播放Clap.wav,否則,當值變爲否時,必須播放boo.wav

任何人都可以給我一個這個或一個想法的示例代碼? 謝謝你們願意幫助的人。

下面是我的一些代碼

這是隱藏的輸入域代碼。它位於表的connExcel上platinum.php的ID

<input type="hidden" name="indVal" id="indVal" value=" <?php echo $objWorksheet->getCellByColumnAndRow(5, 5)->getOldCalculatedValue(); ?> "> 

這裏是我的一些Ajax的代碼

xmlHttp.onreadystatechange=function(){ 
    if(xmlHttp.readyState==4){ 
    document.getElementById('connExcel').innerHTML=xmlHttp.responseText; 
     setTimeout('AutoRefresh()',100); // JavaScript function calls AutoRefresh() every 3 seconds 
    } 
} 
xmlHttp.open("GET","<?php if(isset($isAdmin) && $isAdmin == TRUE){ echo '../../library/tosloader.php?page='. $pageID; } else { echo ../library/tosloader.php?page='. $pageID; } ?>",true); 

的「tosloader.php」只是包括platinum.php刷新桌子。

在您設置隱藏輸入的值的代碼
+0

只是一個建議,你爲什麼不在代碼中設置隱藏值 - 從那裏播放wav? –

+0

,因爲我需要確定值是否更改。我試圖使用JQuery的.change,但它不會工作。 –

+0

這意味着你想檢查輸入的時間間隔是否改變了他的值?你能更具描述性嗎? –

回答

0

做到這一點

$('#myHiddenID').val(myValue).trigger('change'); 

就用change事件這樣

$('#myHiddenID').change(function(){ 
    var OnOff = $(this).val(); 
    if (OnOff == "ON") { // play clap} 
    if (OnOff == "OFF) { //play boo} 
}) 
+0

我不知道把第一個代碼放在哪裏。由於PHP代碼是隱藏字段值的來源。 –

0

jsBin demo

HTML:

<input id="inp" type="text" value="NO" /> 

JS:

function checkInputValue(){ 

    var files = { "YES": "Clap.wav", "NO": "boo.wav" }; 
    var sound = new Audio(files[ $('#inp').val() ]); 
    sound.play(); 

} 

checkInputValue(); // USE WHEREVER YOU LIKE 

或者,你可以這樣做:

名的文件:yes.wavno.wav

function checkInputValue(snd){ 
    var sound = new Audio(snd+'.wav'); 
    sound.play();  
} 

var AJAXval = ("YES").toLowerCase() ; // the returned value to lowercase 
checkInputValue(AJAXval); 
0

聽起來你完全添加和刪除元素來自DOM,因此您需要觀看DOMNodeInserted事件。幸運的是,我們可以綁定它。我們假設隱藏的輸入有一個類hiddenInput。然後,我們需要抓住我們的源元素,名稱爲<source id="yesAudio"..../><source id="noAudio".../>,我們將使用jquery的.get()方法,然後使用HTML5音頻API的.play();來調用它們。

$(document).on('DOMNodeInserted', function(e){ 
    if(e.srcElement.className == 'hiddenInput'){ 
     if(e.srcElement.value == 'yes'){ 
      $('#yesAudio').get().play();  
     }else{ 
      $('#noAudio').get().play(); 
     } 
    }   
});​​​​​ 

我認爲這是你想要的。