0

Social Mention のウィジェット スクリプト -- http://socialmention.com/tools/-を使用します。ユーザーがソーシャル メディアのトピック (var smSearchPhrase) を変更できるように、入力ボックスを追加して変更を試みました。ユーザー データ (smTopic) を取得し、それを新しい変数 (var newTopic) に割り当て、その値を var smSearchPhrase に割り当てる関数 [smSearch()] を作成しました。割り当てが機能しません。

この関数は、アラートを介して観察された値に基づいて機能しているように見えますが、スクリプト内で var newTopic から var smSearchPhrase に値を割り当てる方法がわかりません。関数内にスクリプトを配置して実験しましたが、それもうまくいきませんでした。任意の支援をいただければ幸いです。

必要な情報がすべて含まれていない場合は、お知らせください。ご協力ありがとうございます。

HTML:

<form>
   <label for="smTopic">Enter topic:</label>
   <input type="text" id="smTopic">
   <button onclick="smSearch()">Submit</button>
   <input type="reset">
</form>

機能: (値をチェックするアラートを含む)

function smSearch(){ 
   var newTopic=document.getElementById("smTopic").value;
       if(newTopic === ""){
          alert("Please enter new social media topic.");                                                  
       }else{
          alert("New topic: " + newTopic);
          smSearchPhrase = newTopic; 
          alert("Value of smSearchPhrase: " + smSearchPhrase);
}

スクリプト: オリジナルの var smSearchPhrase には値が割り当てられています。

    <script type="text/javascript"> 
      // search phrase (replace this)
      var smSearchPhrase;
      // title (optional)
      var smTitle = 'Realtime Buzz';
      // items per page
      var smItemsPerPage = 7;
      // show or hide user profile images
      var smShowUserImages = true;
      // widget font size in pixels
      var smFontSize = 11;
      // height of the widget
      var smWidgetHeight = 800;
      // sources (optional, comment out for "all")
      //var smSources = ['twitter', 'facebook', 'googleblog', 'identica'];
    </script>
    <script type="text/javascript" language="javascript" src="http://socialmention.s3.amazonaws.com/buzz_widget/buzz.js"></script>
4

1 に答える 1

0

フォームがバックエンドに送信されていると思いますfalse。onsubmit から戻るか、イベントをキャンセルして、フォームが送信されないようにする必要があります。

したがって、これは機能するはずです:

<form onsubmit="return smSearch();">
   <label for="smTopic">Enter topic:</label>
   <input type="text" id="smTopic">
   <button>Submit</button>
   <input type="reset">
</form>

JavaScript で false を返します。

function smSearch(){ 
       var newTopic=document.getElementById("smTopic").value;
       if(newTopic === ""){
          alert("Please enter new social media topic.");                                                  
       }else{
          alert("New topic: " + newTopic);
          smSearchPhrase = newTopic; 
          alert("Value of smSearchPhrase: " + smSearchPhrase);
       }
       return false;
}

個人的には、event 引数に preventDefault() を使用しますが (ここには示されていません)、IE の一部のバージョンではイベントなどでバブル プロパティを使用するため、jQuery などの JavaScript ライブラリも含めた場合にのみ、すべてのブラウザーで機能します。

于 2013-09-25T11:56:25.193 に答える