2016-03-23 12 views
1

私はRアプリケーションのログインフォームをコーディングしています。 1つのことを除いてすべてうまくいきます:キーアップイベントが発生するたびにMD5でパスワードを暗号化します。これまでのところ、正しい結果が得られます。送信ボタンをクリックすると問題が発生します。私はRでこの暗号化された入力からテキストを読み取ろうとしますが、Shinyは""、つまり空の文字列を読み取ります。私はそれを確認したし、確かに空ではない。唯一の方法は、この暗号化された入力からシャイニーが何かを読んだり、手動で何かを入力することです。自動的に入力された入力がシャイニーで読み取られない

バックエンドでこのパスワードを読み取るにはどうすればよいですか?以下、私のHTML、JS、Rのコードです。私が意図したとおりにそれを動作させることができ@warmoverflowへ

<div class="col-md-4"> 
    <form role="form"> 
     <div class="form-group"> 
      <label for="user"> User (test) </label> 
      <input type="text" name="user" class="form-control shiny-bound-input" id="user" /> 
     </div> 
     <div class="form-group"> 
      <label for="password"> Password (test) </label> 
      <input type="password" name="password" class="form-control shiny-bound-input" 
        id="password"/> 
      <input type="password" name="pass" class="form-control shiny-bound-input" 
        id="pass" style="display:none;"/> 
     </div> 
     <button id="loginButton" type="button" class="btn btn-default action-button shiny-bound-input">Login</button> 

    </form> 
</div> 

$(function() { 
    $("#password").keyup(function(){ 
     $("#pass").val(md5($("#password").val())); 
    }); 
}); 

if (input$loginButton > 0) { 
    Username <- isolate(input$user) 
    Password <- isolate(input$password) 
    print(Password) 
} 
+0

おそらく 'Shiny.onInputChange' JavaScriptを使ってパスワードをバックエンドに送ることができます。 'Shiny.onInputChange(" encrypted_pa​​ss "、md5(...));をあなたのjsコードのどこかに追加し、' input $ encrypted_pa​​ss'でアクセスしてください。 –

答えて

0

感謝。

からkeyupイベントは、この

$("#password").keyup(function(){ 
      Shiny.onInputChange("pass", md5($("#password").val())); 
     }); 

のように終了し、ボタンがクリックされたときに、パスがすでに暗号化され、読み込み可能です。