web-dev-qa-db-ja.com

クリアテキストエリア

Onselectイベントにはスクリプトがあります:

$("#vinanghinguyen_images_bbocde").val('');
$("#vinanghinguyen_images_bbocde").val(vinanghinguyen_final_bbcode);

値を追加する前に、クリアテキストエリアid = "vinanghinguyen_images_bbocde"が必要です。しかし、textarea add add add addとvalueであり、明確ではありません。値を追加する前にクリアしたい

私はここでuploadifyを使用しています

<script type="text/javascript">

$(document).ready(function() {

vinanghinguyen_bbcode='';

vinanghinguyen_final_bbcode='';

vinanghinguyen_link='';

vinanghinguyen_final_derect_link='';
response = '';

  $('#file_upload').uploadify({

    'uploader'  : '{SITE_FULL_URL}/uploadify/uploadify.swf',

    'script'    : '{SITE_FULL_URL}/uploadify/uploadify.php',

    'cancelImg' : '{SITE_FULL_URL}/uploadify/cancel.png',

    'folder'    : 'data/picture_upload/2011',

    'auto'      : false,

    'multi'       : true,

    'buttonText'  : '',

    'onComplete' : function(event,ID,fileObj,response,data) {

     vinanghinguyen_bbcode='[IMG]'+'http://cnttvnn.com'+response+'[/IMG]'+'\n';

     vinanghinguyen_final_bbcode=vinanghinguyen_final_bbcode+vinanghinguyen_bbcode;

     vinanghinguyen_derect_link='http://cnttvnn.com'+response+'\n';
     vinanghinguyen_final_derect_link=vinanghinguyen_final_derect_link+vinanghinguyen_derect_link;
    $("#vinanghinguyen_images_bbocde").val('').val(vinanghinguyen_final_bbcode);

//  $("#vinanghinguyen_images_derect_link").val(vinanghinguyen_final_derect_link);

 $("#vinanghinguyen_result").show();

  $(".uploadifyQueue").height(5);



  },

  'onSelect'    : function(event,ID,fileObj) {
  $("#vinanghinguyen_images_bbocde").val('');
  $("#vinanghinguyen_result").hide();
  $(".uploadifyQueue").height(315);

},

  });

});
</script>
54
vinanghinguyen

$("#vinanghinguyen_images_bbocde").val('');を実行すると、textareaのすべてのコンテンツが削除されるため、それが起こっていない場合、問題はおそらく別の場所にあります。

提供した例が機能するため、コードの少し大きい部分を投稿すると役立つ場合があります。

77
Jakub Arnold

$('textarea').val('')を使用します。

$('textarea').text('')、または$('textarea').html('')の使用に関する問題は、サーバーから送信された元のDOMにあったもののみが消去されることです。ユーザーがクリアしてから新しい入力を入力すると、クリアボタンは機能しなくなります。 .val('')を使用すると、ユーザー入力のケースが適切に処理されます。

45
Karl Wenzel

これは動作します:

$('#textareaName').val('');
12
mzonerz

このメソッドは、子(および他の子孫)要素だけでなく、一致した要素のセット内のテキストも削除します。これは、DOM仕様に従って、要素内のテキストの文字列はその要素の子ノードと見なされるためです。

$('textarea').empty()
7
user669677

これを試して、

$('textarea#textarea_id').val(" ");
4
Achu S

これを試して

 $("#vinanghinguyen_images_bbocde").attr("value", ""); 
4
confucius

私はこのコードを使用しようとしましたが、@ psynnottの答えは正しかったのですが、繰り返し動作することを知る必要がありましたが、jquery 1.7.1で動作するようです>

Jfiddleを次のように変更しました http://jsfiddle.net/Rjj9v/109/

$('#mytext').text('');

これは新しい答えではありません@psynnott is correct

1
duindain

正解は$( "#selElement_Id option:selected")。removeAttr( "selected");です。

0
user1920925

@Jakub Arnoldの答えに同意します。問題はどこかにあるはずです。私は問題を理解できませんでしたが、回避策を見つけました。

関係する要素を親要素でラップし、そのhtmlに関係するIDを持つ新しい要素を作成させます。下記参照

<div id="theParent">
    <div id="vinanghinguyen_images_bbocde"></div>
</div>

'onSelect'    : function(event,ID,fileObj) {
 $("#theParent").html("<div id='vinanghinguyen_images_bbocde'></div>");
 $("#vinanghinguyen_result").hide();
 $(".uploadifyQueue").height(315);
}
0
Neo