jquery对话框 - 希望弹出窗口内的radiobutton值为输入

时间:2017-01-19 03:17:42

标签: javascript jquery html jquery-ui jquery-ui-dialog

我想使用jquery对话框来选择单选按钮,选择后它会.val()输入,但为什么它不起作用?我的代码有什么问题

我不确定我使用onchange事件的单选按钮是否正确?

$(function() {
    $( "#MyDialog" ).dialog({
        autoOpen: false,
        height: 600,
        width: 850,
        modal: true,
        buttons: {
            "Save": function() {
                $('.shirt_type').on('change', function(){
                  if(this.value == 1){
                    $('#sh_type').val("Hello");
                  }
                  if(this.value == 2)
                  {
                    $('#sh_type').val("World");
                  }
                  if(this.value == 3)
                  {
                    $('#sh_type').val("Yes");
                  }
                  if(this.value == 4)
                  {
                    $('#sh_type').val("Wow");
                  }
                });

                $( this ).dialog( "close" );
            },
            "Cancel": function() {
                $( this ).dialog( "close" );
            }
        },
        close: function() {
            $('.shirt_type').val("");
        }
    });

    $( "#choose_shirt" ).click(function() { $( "#MyDialog" ).dialog( "open" ); });
});
<link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div id="MyDialog" title="Create Name">
	    1<input type="radio" class="shirt_type" name="type" value="1" checked>
	    2<input type="radio" class="shirt_type" name="type" value="2">
	    3<input type="radio" class="shirt_type"  name="type" value="3">
	    4<input type="radio" class="shirt_type"  name="type" value="4">
</div>

<button id="choose_shirt"> Pop Up </button>

<table>
  <tr>
    <td>Text :</td>
    <td><input type="text" id="sh_type" name="shirt_type" /></td>
  </tr>
</table>

1 个答案:

答案 0 :(得分:1)

&#13;
&#13;
$(function() {
  $("#MyDialog").dialog({
    autoOpen: false,
    height: 600,
    width: 850,
    modal: true,
    buttons: {
      "Save": function() {
        
        var value = $('.shirt_type:checked').val();
        console.log(value)
        if (value == 1) {
          $('#sh_type').val("Hello");
        }
        if (value == 2) {
          $('#sh_type').val("World");
        }
        if (value == 3) {
          $('#sh_type').val("Yes");
        }
        if (value == 4) {
          $('#sh_type').val("Wow");
        }

        $(this).dialog("close");
      },
      "Cancel": function() {
        $(this).dialog("close");
      }
    },
    close: function() {
      
    }
  });

  $("#choose_shirt").click(function() {
    $("#MyDialog").dialog("open");
  });
});
&#13;
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<div id="MyDialog" title="Create Name">

  1
  <input type="radio" class="shirt_type" name="type" value="1">2

  <input type="radio" class="shirt_type" name="type" value="2">3

  <input type="radio" class="shirt_type" name="type" value="3">4

  <input type="radio" class="shirt_type" name="type" value="4">
</div>

<button id="choose_shirt">Pop Up</button>

<table>
  <tr>
    <td>Text :</td>
    <td>
      <input type="text" id="sh_type" name="shirt_type" />
    </td>
  </tr>


</table>
&#13;
&#13;
&#13;

这是出乎意料的吗?

关闭时不要删除单选按钮的值删除此行$('.shirt_type').val("");