循环遍历json数组,选中复选框值与json值匹配的复选框

时间:2016-03-09 00:09:30

标签: jquery html checkbox

我正在将我的数据库中的项目列表呈现给视图,以便用户可以选择一些项目。如果已经选择并且用户已回到此视图,我需要检查所选项目并相应地标记它们。在我的MVC控制器中,我从数据库中获取先前选择的项目,并将模型作为json字符串传递:

public class MediaPlayerFragment1Test
                extends ActivityInstrumentationTestCase2<DefaultActivity> {

  private DefaultActivity mActivity;
  private Instrumentation mInstrumentation;
  private String filename = "file:///androidTest/assets/SC-00.mp3";
  public static String MEDIA_PLAYER_TAG = "MEDIA PLAYER TAG";

  public MediaPlayerFragment1Test() {
    super(DefaultActivity.class);
  }

  @Override
  public void setUp() throws Exception {
    super.setUp();
    mActivity = getActivity();
  }

  public void tearDown() throws Exception {
    super.tearDown();
  }


  @SmallTest
  public void testFileIsAccessible() {
    try {
      FileInputStream fileInputStream = new FileInputStream(filename);
    } catch (IOException e) {
      assertTrue(e instanceof FileNotFoundException);
      assertTrue(false);
    }
  }
}

然后我需要遍历此列表并与页面上的所有复选框值进行比较。如果匹配,我想要选中复选框。

这是我得到的最接近的(意思是它没有抛出错误):

   ViewBag.selectedSoftware = JsonConvert.SerializeObject(selected);

这是视图中的复选框:

    $(function () {
        var softwareList = @Html.Raw(ViewBag.selectedSoftware);

        $('input[type=checkbox]').each(function() {
            if (this.value == softwareList.SoftwareId) {
                this.prop('checked', true);
            }
        })
    })

1 个答案:

答案 0 :(得分:0)

假设My Object == Your JSON,Your Data == My ID

&#13;
&#13;
	$(document).ready(function() {
	  var fruits = {
	    fruit1: "Kiwi",
	    fruit2: "Apple",
	    fruit3: "Apricot",
	    fruit4: "Orange",
	    fruit5: "Banana",
	    fruit6: "Avocado",
	    fruit7: "Cherry",
	    fruit8: "Strawberry",
	    fruit9: "Guava",
	    fruit9: "Mango",
	    fruit10: "Lemon"
	  };

	  for (item in fruits) {
	    switch (fruits[item]) {
	      case 'Apple':
	        $("#Apple").prop({
	          "checked": true
	        });
	        break;

	      case 'Orange':
	        $("#Orange").prop({
	          "checked": true
	        });
	        break;

	      case 'Grapes':
	        $("#Grapes").prop({
	          "checked": true
	        });
	        break;

	      case 'Strawberry':
	        $("#Strawberry").prop({
	          "checked": true
	        });
	        break;

	      case 'Mango':
	        $("#Mango").prop({
	          "checked": true
	        });
	        break;

	      default:
	        break;
	    }
	  }
	});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='checkbox' id='Apple' />
<label>Apple</label>
<br />
<input type='checkbox' id='Orange' />
<label>Orange</label>
<br />
<input type='checkbox' id='Grapes' />
<label>Grapes</label>
<br />
<input type='checkbox' id='Strawberry' />
<label>Strawberry</label>
<br />
<input type='checkbox' id='Mango' />
<label>Mango</label>
&#13;
&#13;
&#13;