我有一个页面,里面有一堆单选按钮,点击这些单选按钮会导致最近的文本输入变成文件输入,以防他们有想要上传的图像。
我的问题是,如果他们决定不想要图像,我希望他们能够取消选择该单选按钮并执行一些功能将该文件更改回文本输入。
我的 html 看起来像这样,除了我还有更多 <tr>
然后这个。我只是不想在这里转储一堆代码。
<table>
<tbody>
<tr id="1">
<td>Correction 1</td>
<td><input type="number" name="page1" class="form-control" min="1" max="10000"></td>
<td><input type="number" name="pargraph1" class="form-control" min="1" max="100000"></td>
<td><input type="number" name="line1" class="form-control" min="1" max="100000"></td>
<td><p><input type="radio" name="add_image1" class="imageInput" value="" /> Adding</p>
<p><input type="radio" name="add_image1" class="imageInput" value="" /> Replacing</p>
</td>
<td class="hidden-480"><input type="text" name="incorrect1" value="" class="form-control" /></td>
<td class="hidden-480 correct"><input type="text" name="correct1" value="" class="form-control" /></td>
<td><input class="btn-small btn btn-success" type="submit" name="" value="Done" /></td>
</tr>
</tbody>
</table>
我的查询现在看起来像这样。
$('.correctionList').on('change', '.imageInput', function() {
if($('.imageInput').is(':checked')) {
$(this).closest($('tr')).find('.correct').html('<input type="file" name="correct'+num+'" value="" class="form-control" /></td>');
$(this).addClass('selected');
$(this).prop('checked', true);
}
if($('.imageInput').hasClass('selected') && $('.imageInput').is(':checked')){
$(this).closest($('tr')).find('.correct').html('<input type="text" name="correct'+num+'" value="" class="form-control" /></td>');
$(this).removeClass('selected');
$(this).prop('checked', false);
}
});
我知道我走在正确的轨道上,但也许我没有调用正确的方法来取消选择单选按钮。任何帮助都是极好的。
这是一个 jsFiddle 来展示正在发生的事情。 http://jsfiddle.net/pPE9W/
最佳答案
虽然有点难看,但是很管用:
$(document).on('mousedown', 'input[type=radio]:checked', function() {
var that = $(this);
setTimeout(function() {
$(that).prop('checked', false);
}, 150);
});
关于jquery - 在更改时取消选择和选择 jQuery 单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21096003/