2012-02-22 71 views
0

我想製作一個帶有問題的表單,當用戶在輸入框中回答時,應該在該框下面有一個immidiate answere。像問題: 你開什麼車?我:福特動態js根據用戶輸入回答

動態反應:所以你開一輛福特! 那麼福特是什麼樣的?

「另外的輸入框裏回答到用戶」

這都應該用JavaScript實現,沒有jQuery的。我需要一些指導從哪裏開始。

回答

0

您可以使用可用於輸入測試框的不同事件來執行此操作。例如,您可以使用onchangeonblur事件作爲文本框,並在這些事件中編寫適當的邏輯。所以這將被動態執行。 看到這個reference

+0

不參考w3scools ...永遠。 http://meta.stackexchange.com/questions/120025/will-i-be-downvoted-for-giving-a-w3schools-link,也http://w3fools.com/ – epoch 2012-02-22 13:37:29

+0

@epoch嗯..感謝指出出路... – Ved 2012-02-23 04:59:48

2

HTML

<div id='questions'></div>​ 

和JavaScript

var _$ = function(id) { 
    return document.getElementById(id); 
}; 

var handle = function(e, div, num, q) { 
    num = num || 0; 

    var n_div = document.createElement('div'); 
    n_div.innerHTML = q[num].replace(/\$\{ans\}/g, e.value); 
    console.log(e.value) 
    div.appendChild(n_div); 

    if (num + 1 < q.length) { 
     var i = document.createElement('input'); 
     i.type = 'text'; 
     i.onblur = function() { 
      handle(i, div, num + 1, q); 
     }; 

     div.appendChild(i); 
    } 
}; 

var question = [ 
    'What car do you drive?', 
    'So you drive a ${ans}, what kind?', 
    'I like the ${ans} kind, where do you drive it?', 
    'Its nice to drive at ${ans}' 
], div; 

div = _$('questions'); 

var n_div = document.createElement('div'); 
n_div.innerHTML = question[0]; 
div.appendChild(n_div); 

var i = document.createElement('input'); 
i.type = 'text'; 
i.onblur = function() { 
    handle(i, div, 1, question); 
};        
div.appendChild(i); 

在這裏你走,工作example

+0

謝謝。沒有innerhtml,這看起來如何?此外,我試圖獲得按鍵,並在用戶輸入文字時將其寫出。事情是我不知道如何獲得其中的其他單詞,如:所以你開一個「輸入單詞」。有沒有辦法使用這種方法?因爲那樣我們可以同時輸出輸入。 – user1225840 2012-02-22 19:37:52