I create an customize list. There are two choice columns and I want to achive the result is, If column A select "aa" column B will only display some specific choices, such as "1.1 aaa" "1.2 bbb" Same as above said if column A select other choice, column will show other specific choices. How should I do? Is it possible to come true with the "Rule" feature by Infopath? Thanks.

2 Answers 2


The definition of what you are looking for is called 'cascading filters'.

It can be achieved in 2 ways, one of which with InfoPath.

Here is a video that explains very clearly.

your other option is to create a term set in the metadata/taxonomy term store where you have first level and second level terms. Unlike the InfoPath solution, in this case you will not have 2 different columns for your values but only one.

  • Thanks for your answer. I'm a rookie on sharepoint 2013. It's just what I want.
    – GunnerKT
    Dec 2, 2016 at 5:39

You could use Cascading Dropdown using jquery.SPServices. Download the library here, and save it to your site (for example, you could save it at /_catalogs/masterpage/js).

Assuming you have 3 lists:

List A has 2 fields: ID, NameA

List B has 3 fields: ID, NameB, AID (this is a lookup field to the list A item)

List C (here is the list who has 2 choice columns) has 3 fields: ID, TitleA (lookup to list A), TitleB (lookup to list B).

Then on your list C form (add / edit form), you could add the following code:

// Refer to the library
<script src="/_catalogs/masterpage/js/jquery.SPServices-2014.02.min.js"></script>

// Start cascading dropdown code
<script type="text/javascript">
$(document).ready(function() {
        relationshipList: "B", // The list who has reference to list A
        relationshipListParentColumn: "AID", // The 'foreign key' of the relationshipList
        relationshipListChildColumn: "NameB", // The value (anything you want to display) field of the relationshipList
        parentColumn: "TitleA", // The field on list C which refer to the list A (this is the first choice column)
        childColumn: "TitleB", // The field on list C which refer to the list B (this is the second choice column)
        debug: true

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.