我需要制作一个简单的表单,使用javascript将用户重定向到正确的页面。
它有一个单选按钮列表,提交我需要将用户重定向到为每个单选按钮指定的页面URL。
看起来像这样:
我发现了一个使用jquery执行此操作的javascript,但这是通过单击单选按钮触发的。我需要有一个提交按钮。
我认为这很容易做,而且可能是,但不知怎的,我找不到解决方案。
这是我玩的代码(我在SO的其他地方找到了代码,这很有效。但是没有“提交”按钮。):
I value the most:
<form>
<input type="radio" name="redirect" value="http://example.com/food"><span>eating food</span><br>
<input type="radio" name="redirect" value="http://example.com/kids"><span>play with my kids</span><br>
<input type="radio" name="redirect" value="http://example.com/fishing"><span>go fishing</span><br>
<input type="radio" name="redirect" value="http://example.com/stackoverflow"><span>answer StackOverflow questions</span><br>
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$('input[type="radio"]').on('click', function() {
window.location = $(this).val();
});
</script>
我应该能够使用它:https://api.jquery.com/submit/但是我还没有理解如何同时触发提交并获得正确的无线电值,然后重定向。
我能否以某种方式使用上述代码,或者我是否需要采用完全不同的方法来实现?
我试过这个:
I value the most:
<form id="mychoice">
<input type="radio" name="redirect" value="http://example.com/food"><span>eating food</span><br>
<input type="radio" name="redirect" value="http://example.com/kids"><span>play with my kids</span><br>
<input type="radio" name="redirect" value="http://example.com/fishing"><span>go fishing</span><br>
<input type="radio" name="redirect" value="http://example.com/stackoverflow"><span>answer StackOverflow questions</span><br>
<input type="submit" value="Go">
</form>
<script>
$( "#mychoice" ).submit(function( event ) {
window.location = $('input[type="radio"]:checked').val();
});
</script>
我的想法是打开窗口位置,其中的值来自选中的单选按钮。这可能是完全错误的做法。没用......: - )
答案 0 :(得分:1)
你的选择器有点偏。请尝试以下方法:
$('input[name="redirect"]:checked').val();
这个JSFiddle可能有所帮助:
答案 1 :(得分:0)
你可以尝试一下
$( "#mychoice" ).submit(function( event ) {
event.preventDefault();
window.location = $('input[type="radio"]:checked').val();
});
答案 2 :(得分:0)
使用按钮代替提交
<input type="button" id="submit" value="Go">
</form>
<script>
$( "#submit" ).click(function( event ) {
window.location = $('input[type="radio"]:checked').val();
});
</script>