0

こんにちは、私は次のことを達成しようとしています:

1)ユーザーがファイル入力ボタンをクリックすると、テキストフィールドがファイルの名前に置き換えられます

2) ユーザーがテキスト フィールドの値を変更すると、ファイルの内容が消去されます。

これはうまくいきます。ただし、ユーザーが 1) 実行した後に 2) 値がテキスト フィールドに表示されなくなった場合..

これは、コーヒースクリプトを使用したバックボーンにあります..

events:
    'change #soundfile': 'soundReceived'
    'change #soundtrack': 'linkInput'


soundReceived: (event) ->
  $('#soundtrack').html($('#soundfile').val().replace("C:\\fakepath\\", ''))
  @

linkInput:(event) ->
  match = $('#soundtrack').val().match('http://')
  if match
    $('#soundfile').replaceWith($("#soundfile").clone());
    console.log($('#soundfile').val())
  else
    console.log($('#soundfile').val())
    $('#soundtrack').html($('#soundfile').val().replace("C:\\fakepath\\", ''))
    @

編集

<div id = "create_form" > 

    <form class="new_plot" name="create_form" id ="new_plot"  data-remote="true" enctype="multipart/form-data">


    <div id = "sound_gen">
      <span>
      <textarea class="input" id="soundtrack" name="name" rows="1"  onClick="if(this.value == 'Soundtrack: upload mp3 file') { this.value = ''; }">Soundtrack: upload mp3 file</textarea> 
      </span>
          <img id = "btn_upload" src ="/assets/upload_icon.png"></img>
          <input name="soundtrack" type="file" id ="soundfile"/>
      <span class ="generate">
      <input class="blue_button btn_generate" name="commit" type="submit" value="create" id ="plot_subm"/>
      </span>
  </div>
    </form>


  </div>
4

2 に答える 2

1

たとえば、次のようにvalではなく、フォーム要素の値を変更するために使用する必要があります。html

soundReceived: (event) ->
  $('#soundtrack').val($('#soundfile').val().replace("C:\\fakepath\\", ''))
  @

スクリプトを介してスルーの値を変更しようとすることは、<input type="file">一般的に無意味です(うまくいけば明らかな理由で)が、必要に.val(...)応じて試すことができます。

簡略化されたデモ:http://jsfiddle.net/ambiguous/5n6aZ/

また、おそらくハンドラーplaceholderの代わりに属性を使用する必要があります。onClick<textarea>

于 2012-09-20T20:23:11.653 に答える
1

この行:

$('#soundtrack').html($('#soundfile').val().replace("C:\\fakepath\\", ''))

次のようにする必要があります。

$('#soundtrack').html($('#soundfile').val(''))

だから本当にそれは2つの問題でした:

  1. ファイル入力に送信できる唯一の値は空の文字列です
  2. $.val()値として単一のパラメーターを受け入れます。プロパティのように設定されません

お役に立てれば!

于 2012-09-20T19:32:35.953 に答える