2011-04-11 19 views
0

我的腳本的想法是將文本從選擇菜單或文本字段發送到文本區域。到目前爲止,我可以在選擇選項時使選擇菜單工作,但對於文本字段,當我輸入某些內容時,它不會發送任何內容。另外我想給這個腳本添加一些時間,這樣當用戶選擇一個選項或輸入一些內容時,它就會發送。用jquery和定時器發送文本

現在它只能woth選擇菜單...不知道怎麼也使文本字段工作,並增加計時器:(

<select id="status" name="status"> 
    <option value=""></option> 
    <option value="Away">Away</option> 
    <option value="Busy">Busy</option> 
    <option value="Out To Lunch">Out To Lunch</option> 
    <option value="Offline">Offline</option> 
</select> 

<input name="custom_status" type="text"> 

<div id="counter"></div> 

$(function() { 
$("#status").change(function() { 
    $("textarea[name=mess]", parent.frames['form'].document).val($(this).val()); 
}); 

$("#custom_status").change(function() { 
    $("textarea[name=mess]", parent.frames['form'].document).val($(this).val()); 
}); 
}); 

回答

1

這將是很好的補充id來定義狀態:

<input id="custom_status" name="custom_status" type="text" /> 

然後你可以在同一時間運行兩部分功能:

$("#status, #custom_status").bind('change keyup',function(){ 
    $("textarea[name=mess]", parent.frames['form'].document).val($(this).val()); 
}); 

和處理超時這樣的:

var callAway = false; 

$('body').bind('mousemove keyup',function(){ 
    clearTimeout(callAway); 
    callAway = setTimeout(function(){ 
     $("#counter").text("Away"); 
    },5000); 
}) 

小提琴:http://jsfiddle.net/eC9L6/

+0

你的腳本中的月亮是計時器,當你輸入一些東西時就會開始計時? – jennifer 2011-04-11 10:55:13

+0

計時器在移動鼠標或在整個文檔上釋放一個鍵時啓動。從這一點開始,它每5秒觸發一次(應更改),並在文檔上的任何鼠標移動/鍵入操作後重置計時器。 – 2011-04-11 12:01:44

+0

啊!我現在看到...而不是每X次顯示「離開」每隔多少次顯示「#status或#custom_status」,並將其顯示在textarea [name = mess]而不是div。我想要使用計數器div來顯示計數器的倒數 – jennifer 2011-04-11 20:06:45

0
$("[name='custom_status']").change(function() { 
    $("textarea[name=mess]", parent.frames['form'].document).val($(this).val()); 
}); 

$("[name='custom_status']").bind('keyup change', function() { 
    $("textarea[name=mess]", parent.frames['form'].document).val($(this).val()); 
}); 

你的選擇是WR ong,沒有id爲custom_status的輸入,但是名稱爲custom_status的輸入。