2011-07-19 11 views
0
var inpt = $('#input-box').val(); 
if (inpt != '') { 
    $('form').submit(); 
    alert('Voila!');   // (1) 
} else { 
alert('fill something man'); // (2) 
} 

私はこのコードを使用して、ページが読み込まれると自動的にフォームを送信します。
ここでは、GreaseMonkey環境ではjquery $(document).ready()関数を使用できません。
フォームは自動的に塗りつぶされますが、例外的なケースについては(2)を使用しました。自動送信に使用されるjQueryフォームコードエラー

アラートはありません。 (1)または(2)のいずれでもありません。

UPDATE:この時点でページが要求を提出することにより、リロードしたので

<label for="answer">Answer:</label> 
    <input type="text" name="answer" id="input-box" /> 
    <input type="submit" name="submit" id="submit" value="Submit" /> 
</form> 
+0

どのようなエラーが発生しますか? – Gal

+0

@sombe実際には、フォームが 'フォームよりも上の値が間違っていると、ページはエラーで再読み込みされます。再試行する。 ' –

答えて

0

を提出する前に警告を置くようにしてください。

var inpt = $('#input-box').val(); 
if (inpt != '') { 
    alert('Voila!');   // (1) 
    $('form').submit(); 
} else { 
    alert('fill something man'); // (2) 
    return false; // to stop submitting 
} 

あなたは自動提出ユーザーが値を入力した後にそれを望むなら、あなたはthsiを行うことができます。

$('#input-box').live('blur',function(){ 

    var inpt = $('#input-box').val(); 
    if (inpt != '') { 
     alert('Voila!');   // (1) 
     $('form').submit(); 
    } else { 
     alert('fill something man'); // (2) 
     return false; // to stop submitting 
    } 

}); 
+0

も同じです。私は最初に警告するのではなく、フォームを提出する際に問題を起こしていると思います。 –

+0

私は上記の機能を引き起こしていることを知る必要があります。送信ボタンの場合はfalseを返す必要があります。ページがロードされ、入力ボックスでヌル値がチェックされるとすぐにトリガーされます。 – ysrb

+0

それが何らかの価値を含んでいれば、フォームが提出されます。そうでなければ、 'something something man'を警告します。 –

0
alert('Voila!');   // (1) 

は決して、アラート、送信されます。

試してみてください。

$('form').submit(function(){ 
    alert('Voila!');   // (1) 
}).trigger('submit'); 
+0

フォームは実際には送信されず、警告ボックスが表示されました。これは、forが送信されたときにのみトリガされるためですが、送信時に別のページにリダイレクトされるかエラーが表示されます。そして今回私はそれらのどれも得ない。 –

+0

ええええええええええええええええええええええええええええええええええええええええええん、上記のコードは、 – Shef

+0

私はグリースモンキーが実際にどのように働くのかわかりません。フォームの後ではないかもしれません。 –

0

のGreasemonkeyはonready後、これは動作するはずのコードを実行します。しかし、ページにフォームがあり、正しいフォームを取得していますか?ここからの情報はほとんどありません。

ファイヤーバグの機能を最初に確認してください。 greasemonkeyはjqueryのことを理解するためにいくつかの作業が必要です。簡単な方法は、var $ = unsafeWindow.jQueryを使用することです。最初はjQueryを持っているページを提供しています。

+0

そう、...フォームは1つしかないので、かなり良いです。ところで、GMと一緒にFireBugを使用すると、奇妙な動作が起こります.MGのドキュメントhttp://wiki.greasespot.net/Greasemonkey_Manual:Other_Useful_Tools#Firebug –

+0

Lolで、私は約3年間Firebug + Greasemonkeyを使用しました。メモリ豚ですが、通常はそれが動作します。 – Johan

+0

'var $ = unsafeWindow.jQuery;を使用した後、スクリプト全体が失敗します。だから、それを使わないほうがいい。火かぶれについては、私はそれを切り替える:P –

関連する問題