我有一个页面,我有一堆单选按钮,点击这些单选按钮会使最近的文本输入变成文件输入,以防他们有希望上传的图像。
我的问题是,如果他们决定他们不想有一个图像,我希望他们能够取消选择单选按钮,并做一些功能,以改变该文件回到文本输入。
我的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);
});
http://jsfiddle.net/isherwood/pPE9W/1/