2016-09-16 8 views
0

私はJavaScriptを初めて使いました。現在、Qualtricsサーベイにカスタムコードを追加しようとしています。私は動作するはずのコードを持っています。しかし、私は "予期しないトークン"エラーが発生しています)。Qualtrics:Enterキーを押して続行ボタンをエミュレートします

Qualtrics.SurveyEngine.addOnload(function() 
{ 
    document.addEventListener("keydown", function(e) { 
     if (e.keyCode === 13) { 

      function(){ 
       that.clickNextButton(); 
      } 

    } 
    } 

}); 

「clickNextButton」機能がQualtricsのAPIドキュメントで発見された、次のボタンのクリックをエミュレートすることになっている。ここで

はコードです。この関数はclickNextButton()ですが、提供されている例にはthat.clickNextButton()というコードがあります。

彼らが使用する例は以下の通りです:

//Hides the next button and displays the question 
//for 5 seconds before moving to the next page 
this.hideNextButton(); 
var that = this; 
(function(){that.clickNextButton();}).delay(5); 

私は隠しボタンの機能や遅延が必要ですが、それがどのように使われるかの例を含めるたかっはありません。

ご協力いただきありがとうございます。

+0

コードでは、コードには含めなかった 'var that = this'が表示されます。これが動作するかどうかを確認してください:) – VirginieLGB

+0

@VirginieLGB素早い返信をありがとう!私はそれを追加しましたが、私はまだ "予期しないトークン"エラーを取得しています。 – Eugene

+0

2番目から最後の括弧の後に ')'を忘れた – VirginieLGB

答えて

1

は(NextButtonを非表示にする更新)作品簡易版で見る私のコメントで述べている:

Qualtrics.SurveyEngine.addOnload(function() { 
    $('NextButton').hide();   
    document.on("keydown", function(e) { 
     if (e.keyCode === 13) $('NextButton').click(); 
    }); 
}); 
+0

ありがとうございました!できます!フォローアップとして、次のボタンを完全に非表示にしたい場合(今も表示されるように)、hideNextButton()でそのコードに行を追加するだけですか? – Eugene

+0

私は次のボタンを隠すために上記の答えを更新しました。答えを受け入れてください。 –

+0

完了。再度、感謝します! – Eugene

0

範囲に応じて、または具体的にclickNextButton関数が存在する場所によって異なります。 タイムアウトを気にしない場合は、Qualtrics.SurveyEngine関数から「that」という単語を削除すれば正常に動作するはずです。

機能が現在の有効範囲で使用できない可能性があります。したがって、「それ」を削除しても機能しません。それを戻してvar = thisを入れてください。あなたの関数呼び出しの前の行にあります。それはまったく何かを行うきちんとした方法から遠いですが、あなたのために物事を修正するかもしれません。

これを読む価値があります。 http://www.w3schools.com/js/js_scope.asp

ミートローフは何かを言っていませんでした...私はスコープのために何かをしたいと思いますが、私はそれをしませんか?

+0

スコープに入れる必要があります。 !しかし、私は構文エラーが表示されているようだ。 – Eugene

+0

あなたはまだこれでつかまっている場合はよく分からない。しかし、clickNextButton()を呼び出す場所の前に、デバッガ を入力してください。 次に、開発ツール(ctrl-shift-i)を開き、関数呼び出しの直前に停止するコードを実行します。今すぐあなたはあなたが得るものを見るために物事を入力することができます。コンソールで と入力してみてください。 そこから探検してください。スコープ内の関数を見ることができるかどうかを確認してください。 – Ryan

0

としては、それはあなたのエラーを解決するかどうかここで

Qualtrics.SurveyEngine.addOnload(function() 
    { 
     document.addEventListener("keydown", function(e) { 
      if (e.keyCode === 13) { 

       function(){ 
        that.clickNextButton(); 
       } 

      } 
     }); // here was a missing bracket here 
    }); 
+0

奇妙なことに、私はまだ同じエラーが発生しています。 "予期しないトークン)"。 – Eugene

0

だから私は持っていますビデオが質問に埋め込まれていて、私は自動再生ビデオが見られたことを知っているように、15秒間次のボタンを無効にする必要がありました。

そして、これはとてもよく私の仕事:

Qualtrics.SurveyEngine.addOnload(function() 
{ 
//Hides the next button and displays the question 
//for 15 seconds before moving to the next page 
this.disableNextButton(); 
var that = this; 
(function(){that.enableNextButton();}).delay(15); 

}); 

をあなたは、任意の数に(15)秒を変更することができ、[次へ]ボタンがアクティブになり、準備が次にクリックすることではなく、自動的にあなたを送信しません次のページ。

関連する問題